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

void colon(char *buf)

{
  int b;
  int e;
  int t;
  char cmd [128];
  char args [128];
  char buf_1 [128];
  
}



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

void __regparm3 FUN_0009e093(char *param_1)

{
  int iVar1;
  undefined *puVar2;
  int *piVar3;
  byte bVar4;
  byte *pbVar5;
  undefined1 *puVar6;
  size_t sVar7;
  int iVar8;
  char *pcVar9;
  char *pcVar10;
  char *pcVar11;
  int iVar12;
  undefined4 uVar13;
  char cVar14;
  undefined4 extraout_ECX;
  size_t sVar15;
  undefined1 *puVar16;
  byte bVar17;
  undefined1 *puVar18;
  byte *pbVar19;
  byte *pbVar20;
  uint uVar21;
  undefined1 *puVar22;
  uint uVar23;
  int in_GS_OFFSET;
  bool bVar24;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  byte *local_1d4;
  byte *local_1d0;
  byte *local_1cc;
  uint local_1c8;
  byte *local_1c4;
  byte *local_1bc;
  uint local_1b4;
  uint local_1ac;
  uint local_1a8;
  int local_1a4;
  byte local_1a0 [128];
  byte local_120 [128];
  undefined1 local_a0 [128];
  int local_20;
  
  piVar3 = DAT_000d1700;
  bVar27 = 0;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  cVar14 = *param_1;
  if (cVar14 != '\0') {
    if (cVar14 == ':') {
      cVar14 = param_1[1];
      param_1 = param_1 + 1;
    }
    local_1a8 = 0xffffffff;
    local_1ac = 0xffffffff;
    local_1d0 = (byte *)*DAT_000d1700;
    local_1cc = (byte *)(DAT_000d1700[1] + -1);
    FUN_0009caff();
    while ((cVar14 == ' ' || (cVar14 == '\t'))) {
      param_1 = param_1 + 1;
      cVar14 = *param_1;
    }
    local_1c4 = (byte *)piVar3[0x11];
    if (cVar14 == '%') {
      pbVar5 = (byte *)(param_1 + 1);
      local_1ac = 1;
      local_1a8 = FUN_0009caff();
LAB_0009f0a0:
      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {
      }
      if (bVar4 == 0) goto LAB_0009e154;
      bVar17 = bVar4 - 9;
      local_1bc = pbVar5;
LAB_0009f0b9:
      if (bVar17 < 5) {
LAB_0009f07d:
        pbVar20 = local_1a0;
        pbVar5 = local_1bc;
      }
      else {
        pbVar19 = local_1a0;
        pbVar5 = local_1bc;
        do {
          pbVar5 = pbVar5 + 1;
          pbVar20 = pbVar19 + 1;
          *pbVar19 = bVar4;
          bVar4 = *pbVar5;
          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;
          pbVar19 = pbVar20;
        } while (4 < (byte)(bVar4 - 9));
      }
    }
    else {
      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));
          pbVar5 = pbVar5 + 1) {
      }
      if (bVar4 == 0x2c) {
        do {
          do {
            pbVar5 = pbVar5 + 1;
          } while (*pbVar5 == 0x20);
        } while (*pbVar5 == 9);
        pbVar5 = (byte *)FUN_0009d46a();
        goto LAB_0009f0a0;
      }
      if (bVar4 != 0) {
        bVar17 = bVar4 - 9;
        local_1bc = pbVar5;
        if (bVar17 != 0x17) goto LAB_0009f0b9;
        goto LAB_0009f07d;
      }
LAB_0009e154:
      pbVar20 = local_1a0;
      local_1bc = pbVar5;
    }
    local_1d4 = local_1a0;
    *pbVar20 = 0;
    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {
    }
    __strcpy_chk(local_120,pbVar5,0x80);
    puVar6 = (undefined1 *)FUN_00018cc2();
    bVar25 = puVar6 != (undefined1 *)0x0;
    if (bVar25) {
      *puVar6 = 0;
    }
    local_1c8 = local_1ac;
    if (-1 < (int)local_1ac) {
      local_1d0 = (byte *)*piVar3;
      uVar21 = local_1ac;
      if (1 < (int)local_1ac) {
        do {
          local_1d0 = (byte *)FUN_0009caa8();
          uVar21 = uVar21 - 1;
        } while (uVar21 != 1);
      }
      local_1cc = (byte *)FUN_0009ca70();
    }
    if (-1 < (int)local_1a8) {
      uVar21 = local_1a8;
      if (1 < (int)local_1a8) {
        do {
          FUN_0009caa8();
          uVar21 = uVar21 - 1;
        } while (uVar21 != 1);
      }
      local_1cc = (byte *)FUN_0009ca70();
    }
    sVar7 = strlen((char *)local_1d4);
    if (sVar7 == 0) {
      if (-1 < (int)local_1ac) {
        iVar8 = *piVar3;
        if (1 < (int)local_1ac) {
          do {
            iVar8 = FUN_0009caa8();
            local_1ac = local_1ac - 1;
          } while (local_1ac != 1);
        }
        piVar3[2] = iVar8;
        FUN_0009be15();
      }
    }
    else if (local_1a0[0] == 0x21) {
      FUN_0009d5bb();
      FUN_00019f78();
      FUN_0001985b();
      iVar8 = system((char *)(local_1bc + 1));
      if (iVar8 != 0) {
        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);
      }
      FUN_00019903();
      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);
LAB_0009e2b4:
      FUN_0009d8b5();
    }
    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {
      if ((int)local_1ac < 0) {
        local_1c8 = FUN_0009caff();
      }
      FUN_0009c4a0("%d",local_1c8);
    }
    else {
      sVar15 = sVar7;
      if (7 < (int)sVar7) {
        sVar15 = 7;
      }
      bVar24 = false;
      bVar26 = true;
      pbVar5 = local_1d4;
      pbVar19 = (byte *)"delete";
      do {
        if (sVar15 == 0) break;
        sVar15 = sVar15 - 1;
        bVar24 = *pbVar5 < *pbVar19;
        bVar26 = *pbVar5 == *pbVar19;
        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
      } while (bVar26);
      if ((!bVar24 && !bVar26) == bVar24) {
        if ((int)local_1ac < 0) {
          FUN_0009cbb6();
          FUN_0009ca70();
        }
        iVar8 = FUN_0009dbfd(1);
        piVar3[2] = iVar8;
        FUN_0009be15();
      }
      else {
        sVar15 = sVar7;
        if (5 < (int)sVar7) {
          sVar15 = 5;
        }
        bVar24 = false;
        bVar26 = true;
        pbVar5 = local_1d4;
        pbVar19 = (byte *)0xcd0e4;
        do {
          if (sVar15 == 0) break;
          sVar15 = sVar15 - 1;
          bVar24 = *pbVar5 < *pbVar19;
          bVar26 = *pbVar5 == *pbVar19;
          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
        } while (bVar26);
        if ((!bVar24 && !bVar26) == bVar24) {
          if ((piVar3[5] == 0) || (bVar25)) {
            if ((local_120[0] == 0) &&
               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {
              FUN_0009c4e0("No current filename");
            }
            else {
              iVar8 = FUN_0009df80();
              if ((uint)piVar3[0x21] < 0x1c) {
                free((void *)piVar3[piVar3[0x21] + 0x22]);
                piVar3[piVar3[0x21] + 0x22] = 0;
              }
              if ((uint)piVar3[0x20] < 0x1c) {
                free((void *)piVar3[piVar3[0x20] + 0x22]);
                piVar3[piVar3[0x20] + 0x22] = 0;
              }
              iVar12 = piVar3[1];
              iVar1 = *piVar3;
              uVar13 = FUN_0009caff();
              pcVar9 = " [Readonly]";
              if (*(char *)((int)piVar3 + 0x11) == '\0') {
                pcVar9 = "";
              }
              pcVar10 = " [New file]";
              if (-1 < iVar8) {
                pcVar10 = "";
              }
              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);
            }
            goto LAB_0009e302;
          }
LAB_0009e3d0:
          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);
        }
        else {
          sVar15 = sVar7;
          if (5 < (int)sVar7) {
            sVar15 = 5;
          }
          bVar24 = false;
          bVar26 = true;
          pbVar5 = local_1d4;
          pbVar19 = (byte *)0xcaef1;
          do {
            if (sVar15 == 0) break;
            sVar15 = sVar15 - 1;
            bVar24 = *pbVar5 < *pbVar19;
            bVar26 = *pbVar5 == *pbVar19;
            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
          } while (bVar26);
          if ((!bVar24 && !bVar26) == bVar24) {
            if ((local_1ac & local_1a8) == 0xffffffff) {
              if (local_120[0] == 0) {
                piVar3[0x10] = 0;
              }
              else {
                free((void *)piVar3[0x11]);
                iVar8 = FUN_00019ba3();
                piVar3[0x11] = iVar8;
              }
            }
            else {
              FUN_0009c4e0("No address allowed on this command");
            }
          }
          else {
            sVar15 = sVar7;
            if (9 < (int)sVar7) {
              sVar15 = 9;
            }
            bVar24 = false;
            bVar26 = true;
            pbVar5 = local_1d4;
            pbVar19 = (byte *)"features";
            do {
              if (sVar15 == 0) break;
              sVar15 = sVar15 - 1;
              bVar24 = *pbVar5 < *pbVar19;
              bVar26 = *pbVar5 == *pbVar19;
              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
            } while (bVar26);
            if ((!bVar24 && !bVar26) == bVar24) {
              FUN_0009d5bb();
              FUN_00019f78();
              FUN_0001985b();
              puts(
                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"
                  );
              FUN_00019903();
              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);
              FUN_0009d8b5();
            }
            else {
              sVar15 = sVar7;
              if (5 < (int)sVar7) {
                sVar15 = 5;
              }
              bVar24 = false;
              bVar26 = true;
              pbVar5 = local_1d4;
              pbVar19 = (byte *)0xbda40;
              do {
                if (sVar15 == 0) break;
                sVar15 = sVar15 - 1;
                bVar24 = *pbVar5 < *pbVar19;
                bVar26 = *pbVar5 == *pbVar19;
                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
              } while (bVar26);
              if ((!bVar24 && !bVar26) == bVar24) {
                if ((int)local_1ac < 0) {
                  local_1d0 = (byte *)FUN_0009cbb6();
                  local_1cc = (byte *)FUN_0009ca70();
                }
                FUN_0009d5bb();
                puts("\r");
                puVar2 = PTR_stdout_000d0fb4;
                if (local_1cc < local_1d0) goto LAB_0009e2b4;
                do {
                  bVar27 = *local_1d0;
                  if ((char)bVar27 < '\0') {
                    if (bVar27 == 0x9b) {
                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);
                      FUN_00019f93();
                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);
                    }
                    else {
LAB_0009e548:
                      FUN_00019f93();
                    }
                  }
                  else if (bVar27 == 10) {
                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);
                    FUN_00019f93();
                  }
                  else if (bVar27 < 0x20) {
                    FUN_00019f93();
                    FUN_00019f93();
                  }
                  else {
                    if (bVar27 != 0x7f) goto LAB_0009e548;
                    FUN_00019f93();
                    FUN_00019f93();
                  }
                  local_1d0 = local_1d0 + 1;
                } while (local_1d0 != local_1cc + 1);
                FUN_0009d8b5();
              }
              else {
                sVar15 = sVar7;
                if (5 < (int)sVar7) {
                  sVar15 = 5;
                }
                bVar24 = false;
                bVar26 = true;
                pbVar5 = local_1d4;
                pbVar19 = &DAT_000cd0c2;
                do {
                  if (sVar15 == 0) break;
                  sVar15 = sVar15 - 1;
                  bVar24 = *pbVar5 < *pbVar19;
                  bVar26 = *pbVar5 == *pbVar19;
                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                } while (bVar26);
                if ((!bVar24 && !bVar26) == bVar24) {
LAB_0009e591:
                  if (bVar25) {
                    if (local_1a0[0] == 0x71) {
                      *(int *)PTR_optind_000d0f94 = piVar3[7];
                    }
                  }
                  else {
                    if (piVar3[5] != 0) goto LAB_0009e3d0;
                    uVar21 = *(uint *)PTR_optind_000d0f94;
                    iVar8 = ~uVar21 + piVar3[7];
                    if (local_1a0[0] == 0x71) {
                      if (0 < iVar8) {
                        FUN_0009c4e0("%d more file(s) to edit",iVar8);
                        goto LAB_0009e302;
                      }
                    }
                    else if (local_1a0[0] == 0x6e) {
                      if (iVar8 < 1) {
                        FUN_0009c4e0("No more files to edit");
                        goto LAB_0009e302;
                      }
                    }
                    else if (local_1a0[0] == 0x70) {
                      if ((int)uVar21 < 1) {
                        FUN_0009c4e0("No previous files to edit");
                        goto LAB_0009e302;
                      }
                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;
                    }
                  }
                }
                else {
                  sVar15 = sVar7;
                  if (5 < (int)sVar7) {
                    sVar15 = 5;
                  }
                  bVar24 = false;
                  bVar26 = true;
                  pbVar5 = local_1d4;
                  pbVar19 = &DAT_000cd0c7;
                  do {
                    if (sVar15 == 0) break;
                    sVar15 = sVar15 - 1;
                    bVar24 = *pbVar5 < *pbVar19;
                    bVar26 = *pbVar5 == *pbVar19;
                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                  } while (bVar26);
                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;
                  sVar15 = sVar7;
                  if (5 < (int)sVar7) {
                    sVar15 = 5;
                  }
                  bVar24 = false;
                  bVar26 = true;
                  pbVar5 = local_1d4;
                  pbVar19 = &DAT_000cd0cc;
                  do {
                    if (sVar15 == 0) break;
                    sVar15 = sVar15 - 1;
                    bVar24 = *pbVar5 < *pbVar19;
                    bVar26 = *pbVar5 == *pbVar19;
                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                  } while (bVar26);
                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;
                  sVar15 = sVar7;
                  if (5 < (int)sVar7) {
                    sVar15 = 5;
                  }
                  bVar24 = false;
                  bVar26 = true;
                  pbVar5 = local_1d4;
                  pbVar19 = (byte *)0xc4379;
                  do {
                    if (sVar15 == 0) break;
                    sVar15 = sVar15 - 1;
                    bVar24 = *pbVar5 < *pbVar19;
                    bVar26 = *pbVar5 == *pbVar19;
                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                  } while (bVar26);
                  if ((!bVar24 && !bVar26) == bVar24) {
                    if (local_120[0] == 0) {
                      FUN_0009c4e0("No filename given");
                      goto LAB_0009e302;
                    }
                    if ((int)local_1ac < 0) {
                      FUN_0009cbb6();
LAB_0009ed56:
                      local_1d0 = (byte *)FUN_0009caa8();
                      if (local_1d0 == (byte *)piVar3[1] + -1) {
                        local_1d0 = (byte *)piVar3[1];
                      }
                    }
                    else if (local_1ac != 0) goto LAB_0009ed56;
                    iVar8 = *piVar3;
                    iVar12 = FUN_0009c54d();
                    if (-1 < iVar12) {
                      iVar1 = *piVar3;
                      uVar13 = FUN_0009caff();
                      pcVar9 = " [Readonly]";
                      if (*(char *)((int)piVar3 + 0x11) == '\0') {
                        pcVar9 = "";
                      }
                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);
                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {
                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);
                      }
                    }
                    goto LAB_0009e302;
                  }
                  sVar15 = sVar7;
                  if (7 < (int)sVar7) {
                    sVar15 = 7;
                  }
                  bVar24 = false;
                  bVar26 = true;
                  pbVar5 = local_1d4;
                  pbVar19 = (byte *)"rewind";
                  do {
                    if (sVar15 == 0) break;
                    sVar15 = sVar15 - 1;
                    bVar24 = *pbVar5 < *pbVar19;
                    bVar26 = *pbVar5 == *pbVar19;
                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                  } while (bVar26);
                  if ((!bVar24 && !bVar26) != bVar24) {
                    sVar15 = sVar7;
                    if (4 < (int)sVar7) {
                      sVar15 = 4;
                    }
                    bVar24 = false;
                    bVar26 = true;
                    pbVar5 = local_1d4;
                    pbVar19 = (byte *)0xc47f6;
                    do {
                      if (sVar15 == 0) break;
                      sVar15 = sVar15 - 1;
                      bVar24 = *pbVar5 < *pbVar19;
                      bVar26 = *pbVar5 == *pbVar19;
                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                    } while (bVar26);
                    if ((!bVar24 && !bVar26) == bVar24) {
                      if (local_120[0] != 0) {
                        iVar8 = strcasecmp((char *)local_120,"all");
                        bVar25 = iVar8 == 0;
                        if (!bVar25) {
                          local_1b4 = 0;
                          local_1d4 = local_120;
                          do {
                            bVar24 = false;
                            iVar8 = 2;
                            pbVar5 = local_1d4;
                            pbVar19 = &DAT_000c4601;
                            do {
                              if (iVar8 == 0) break;
                              iVar8 = iVar8 + -1;
                              bVar24 = *pbVar5 < *pbVar19;
                              bVar25 = *pbVar5 == *pbVar19;
                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                            } while (bVar25);
                            if ((!bVar24 && !bVar25) == bVar24) {
                              local_1b4 = 2;
                            }
                            FUN_0009c95a(&DAT_000cd14e,1);
                            FUN_0009c95a(&DAT_000cd158,8);
                            FUN_0009c95a("ic",4);
                            FUN_0009c95a(&DAT_000cd172,2);
                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);
                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;
                            iVar8 = 8;
                            pbVar5 = local_1d4 + local_1b4;
                            pbVar19 = (byte *)"tabstop=";
                            do {
                              pbVar20 = pbVar19;
                              if (iVar8 == 0) break;
                              iVar8 = iVar8 + -1;
                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;
                              bVar25 = *pbVar5 < *pbVar19;
                              bVar24 = *pbVar5 == *pbVar19;
                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                              pbVar19 = pbVar20;
                            } while (bVar24);
                            if ((!bVar25 && !bVar24) == bVar25) {
                              local_1a4 = 0;
                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);
                              if (local_1a4 - 1U < 0x20) {
                                piVar3[0x15] = local_1a4;
                              }
                            }
                            FUN_00018f04();
                            local_1d4 = (byte *)FUN_00018ef1();
                            bVar25 = *local_1d4 == 0;
                          } while (!bVar25);
                          goto LAB_0009e302;
                        }
                      }
                      bVar27 = *(byte *)(piVar3 + 4);
                      puVar6 = &DAT_000cd91f;
                      if ((bVar27 & 2) == 0) {
                        puVar6 = &DAT_000c4601;
                      }
                      puVar22 = &DAT_000cd91f;
                      if ((bVar27 & 4) == 0) {
                        puVar22 = &DAT_000c4601;
                      }
                      puVar16 = &DAT_000cd91f;
                      if ((bVar27 & 8) == 0) {
                        puVar16 = &DAT_000c4601;
                      }
                      puVar18 = &DAT_000cd91f;
                      if ((bVar27 & 1) == 0) {
                        puVar18 = &DAT_000c4601;
                      }
                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",
                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);
                    }
                    else {
                      if (local_1a0[0] == 0x73) {
                        bVar27 = local_1bc[1];
                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);
                        if (pcVar9 != (char *)0x0) {
                          *pcVar9 = '\0';
                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);
                          if (pcVar10 != (char *)0x0) {
                            *pcVar10 = '\0';
                            cVar14 = pcVar10[1];
                            if ((int)local_1ac < 0) {
                              FUN_0009cbb6();
                              local_1ac = FUN_0009caff();
                            }
                            else {
                              FUN_0009cbb6();
                            }
                            uVar21 = local_1ac;
                            if (((int)local_1a8 < 0) ||
                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {
LAB_0009eafa:
                              local_1a8 = uVar21;
                              iVar8 = FUN_0009d344();
                              uVar21 = local_1a8;
                              if (iVar8 == 0) goto LAB_0009eb5a;
                              FUN_0009c26a();
                              iVar12 = FUN_0009c75e();
                              if (cVar14 == 'g') goto code_r0x0009eb3b;
                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;
                            }
                            goto LAB_0009e302;
                          }
                        }
                        FUN_0009c4a0(":s expression missing delimiters");
                        goto LAB_0009e30a;
                      }
                      sVar15 = sVar7;
                      if (8 < (int)sVar7) {
                        sVar15 = 8;
                      }
                      bVar24 = false;
                      bVar26 = true;
                      pbVar5 = local_1d4;
                      pbVar19 = (byte *)0xcabbd;
                      do {
                        if (sVar15 == 0) break;
                        sVar15 = sVar15 - 1;
                        bVar24 = *pbVar5 < *pbVar19;
                        bVar26 = *pbVar5 == *pbVar19;
                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                      } while (bVar26);
                      if ((!bVar24 && !bVar26) == bVar24) {
                        FUN_0009c4a0("1.30.1");
                      }
                      else {
                        sVar15 = sVar7;
                        if (6 < (int)sVar7) {
                          sVar15 = 6;
                        }
                        bVar24 = false;
                        bVar26 = true;
                        pbVar5 = local_1d4;
                        pbVar19 = (byte *)0xc4644;
                        do {
                          if (sVar15 == 0) break;
                          sVar15 = sVar15 - 1;
                          bVar24 = *pbVar5 < *pbVar19;
                          bVar26 = *pbVar5 == *pbVar19;
                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                        } while (bVar26);
                        if ((!bVar24 && !bVar26) != bVar24) {
                          sVar15 = sVar7;
                          if (3 < (int)sVar7) {
                            sVar15 = 3;
                          }
                          bVar24 = false;
                          bVar26 = true;
                          pbVar5 = local_1d4;
                          pbVar19 = &DAT_000c86f9;
                          do {
                            if (sVar15 == 0) break;
                            sVar15 = sVar15 - 1;
                            bVar24 = *pbVar5 < *pbVar19;
                            bVar26 = *pbVar5 == *pbVar19;
                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                          } while (bVar26);
                          if ((!bVar24 && !bVar26) != bVar24) {
                            sVar15 = sVar7;
                            if (3 < (int)sVar7) {
                              sVar15 = 3;
                            }
                            bVar24 = false;
                            bVar26 = true;
                            pbVar5 = local_1d4;
                            pbVar19 = (byte *)0xc52d8;
                            do {
                              if (sVar15 == 0) break;
                              sVar15 = sVar15 - 1;
                              bVar24 = *pbVar5 < *pbVar19;
                              bVar26 = *pbVar5 == *pbVar19;
                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                            } while (bVar26);
                            if (((!bVar24 && !bVar26) != bVar24) &&
                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {
                              if (5 < (int)sVar7) {
                                sVar7 = 5;
                              }
                              bVar25 = false;
                              bVar24 = true;
                              pbVar5 = &DAT_000cd19e;
                              do {
                                if (sVar7 == 0) break;
                                sVar7 = sVar7 - 1;
                                bVar25 = *local_1d4 < *pbVar5;
                                bVar24 = *local_1d4 == *pbVar5;
                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;
                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                              } while (bVar24);
                              if ((!bVar25 && !bVar24) == bVar25) {
                                if ((int)local_1ac < 0) {
                                  FUN_0009cbb6();
                                  FUN_0009ca70();
                                }
                                FUN_0009be4f();
                                uVar13 = FUN_0009caff();
                                uVar21 = piVar3[0x20];
                                if (uVar21 < 0x1a) {
                                  uVar23 = uVar21 + 0x61 & 0xff;
                                }
                                else {
                                  uVar23 = 0x44;
                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {
                                    uVar23 = 0x44;
                                  }
                                }
                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);
                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,
                                             uVar23);
                              }
                              else {
                                FUN_0009c3ff();
                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);
                              }
                              goto LAB_0009e302;
                            }
                          }
                        }
                        if (local_120[0] != 0) {
                          local_1c4 = local_120;
                        }
                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {
                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {
                            uVar13 = FUN_0009caff();
                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);
                            pbVar5 = (byte *)0x0;
LAB_0009ea0c:
                            if (((byte *)*piVar3 == local_1d0) &&
                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {
                              piVar3[5] = 0;
                              piVar3[6] = -1;
                            }
                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {
                              *(undefined1 *)((int)piVar3 + 0x12) = 0;
                            }
                            else if ((local_1a0[1] & 0xdf) == 0x4e) {
                              *(undefined1 *)((int)piVar3 + 0x12) = 0;
                            }
                          }
                          else {
                            pbVar5 = (byte *)FUN_0009c9dc();
                            if ((int)pbVar5 < 0) {
                              if (pbVar5 == (byte *)0xffffffff) {
                                FUN_0009c4e0("\'%s\' %m",local_1c4);
                              }
                            }
                            else {
                              uVar13 = FUN_0009caff();
                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);
                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;
                            }
                          }
                        }
                        else {
                          FUN_0009c4e0("\'%s\' is read only",local_1c4);
                        }
                      }
                    }
                    goto LAB_0009e302;
                  }
                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;
                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;
                }
                *(undefined1 *)((int)piVar3 + 0x12) = 0;
              }
            }
          }
        }
      }
    }
  }
LAB_0009e302:
  iVar8 = FUN_0009e04d();
  piVar3[2] = iVar8;
LAB_0009e30a:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00017e10();
  }
  return;
code_r0x0009eb3b:
  pcVar11 = (char *)FUN_0009ca70();
  if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {
LAB_0009eb5a:
    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;
LAB_0009eb65:
    local_1ac = local_1ac + 1;
    FUN_0009caa8();
  }
  goto LAB_0009eafa;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x1cc
CALL 0x00017640
ADD EBX,0x3297e
MOV ESI,EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x1bc],EAX
XOR EAX,EAX
MOV CL,byte ptr [ESI]
MOV EBP,dword ptr [EBX + 0xce0]
TEST CL,CL
JZ 0x0009e694
CMP CL,0x3a
JZ 0x0009f10b
MOV byte ptr [ESP + 0x8],CL
MOV dword ptr [ESP + 0x34],0xffffffff
MOV dword ptr [ESP + 0x30],0xffffffff
MOV EAX,dword ptr [EBP]
MOV dword ptr [ESP + 0xc],EAX
MOV EDX,dword ptr [EBP + 0x4]
DEC EDX
MOV dword ptr [ESP + 0x10],EDX
CALL 0x0009caff
MOV CL,byte ptr [ESP + 0x8]
CMP CL,0x20
JNZ 0x0009e108
INC ESI
MOV CL,byte ptr [ESI]
JMP 0x0009e0fe
CMP CL,0x9
JZ 0x0009e103
MOV EAX,dword ptr [EBP + 0x44]
MOV dword ptr [ESP + 0x18],EAX
CMP CL,0x25
JZ 0x0009f0ef
LEA EDX,[ESP + 0x30]
MOV EAX,ESI
CALL 0x0009d46a
MOV ESI,EAX
MOV AL,byte ptr [ESI]
CMP AL,0x20
JNZ 0x0009e133
INC ESI
JMP 0x0009e12a
CMP AL,0x9
JZ 0x0009e130
CMP AL,0x2c
JNZ 0x0009e14c
LEA EAX,[ESI + 0x1]
MOV DL,byte ptr [EAX]
CMP DL,0x20
JNZ 0x0009f08c
INC EAX
JMP 0x0009e13e
TEST AL,AL
JNZ 0x0009f071
MOV dword ptr [ESP + 0x20],ESI
LEA EAX,[ESP + 0x3c]
MOV dword ptr [ESP + 0x8],EAX
MOV EDX,EAX
MOV byte ptr [EDX],0x0
MOV AL,byte ptr [ESI]
CMP AL,0x20
JNZ 0x0009e16e
INC ESI
JMP 0x0009e165
CMP AL,0x9
JZ 0x0009e16b
PUSH EDI
PUSH 0x80
PUSH ESI
LEA EAX,[ESP + 0xc8]
MOV dword ptr [ESP + 0x28],EAX
PUSH EAX
CALL 0x00016f10
MOV EDX,0x21
MOV EAX,dword ptr [ESP + 0x18]
CALL 0x00018cc2
ADD ESP,0x10
MOV dword ptr [ESP + 0x24],0x0
TEST EAX,EAX
JZ 0x0009e1b2
MOV byte ptr [EAX],0x0
MOV dword ptr [ESP + 0x24],0x1
MOV EDI,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x14],EDI
TEST EDI,EDI
JS 0x0009e1e8
MOV EAX,dword ptr [EBP]
MOV dword ptr [ESP + 0xc],EAX
CMP EDI,0x1
JLE 0x0009e1db
MOV ESI,EDI
CALL 0x0009caa8
DEC ESI
CMP ESI,0x1
JNZ 0x0009e1cc
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x0009ca70
MOV dword ptr [ESP + 0x10],EAX
MOV EDI,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x28],EDI
TEST EDI,EDI
JS 0x0009e212
MOV EAX,dword ptr [EBP]
CMP EDI,0x1
JLE 0x0009e209
MOV ESI,EDI
CALL 0x0009caa8
DEC ESI
CMP ESI,0x1
JNZ 0x0009e1fe
CALL 0x0009ca70
MOV dword ptr [ESP + 0x10],EAX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x00016b40
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0009e255
MOV EBX,dword ptr [ESP + 0x14]
TEST EBX,EBX
JS 0x0009e694
MOV EAX,dword ptr [EBP]
MOV EBX,dword ptr [ESP + 0x14]
CMP EBX,0x1
JLE 0x0009e248
CALL 0x0009caa8
DEC EBX
CMP EBX,0x1
JNZ 0x0009e23d
MOV dword ptr [EBP + 0x8],EAX
CALL 0x0009be15
JMP 0x0009e694
MOV DL,byte ptr [ESP + 0x3c]
CMP DL,0x21
JNZ 0x0009e2be
CALL 0x0009d5bb
CALL 0x00019f78
LEA ESI,[EBP + 0x20c]
MOV EAX,ESI
CALL 0x0001985b
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x2c]
INC EAX
PUSH EAX
CALL 0x00016940
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0009e29d
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xffffc668]
PUSH EAX
PUSH 0x1
CALL 0x00016f40
ADD ESP,0x10
MOV ECX,0x6
MOV EDX,ESI
XOR EAX,EAX
CALL 0x00019903
MOV AL,byte ptr [EBP + 0x21f]
MOV byte ptr [EBP + 0x5c],AL
CALL 0x0009d8b5
JMP 0x0009e694
CMP DL,0x3d
JNZ 0x0009e329
CMP byte ptr [ESP + 0x3d],0x0
JNZ 0x0009e329
MOV EDX,dword ptr [ESP + 0x14]
TEST EDX,EDX
JNS 0x0009e2e9
MOV EDX,dword ptr [EBP + 0x8]
MOV EAX,dword ptr [EBP]
CALL 0x0009caff
MOV dword ptr [ESP + 0x14],EAX
MOV dword ptr [ESP + 0x34],EAX
MOV dword ptr [ESP + 0x30],EAX
SUB ESP,0x8
PUSH dword ptr [ESP + 0x1c]
LEA EAX,[EBX + 0xffff6189]
PUSH EAX
CALL 0x0009c4a0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
CALL 0x0009e04d
MOV dword ptr [EBP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x1bc]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x0009e954
ADD ESP,0x1cc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ECX,EAX
CMP EAX,0x7
JG 0x0009e393
CMP ECX,ECX
LEA EDI,[EBX + 0xffffc67d]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0009e39a
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JNS 0x0009e369
MOV EBX,dword ptr [EBP + 0x8]
MOV EAX,EBX
CALL 0x0009cbb6
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,EBX
CALL 0x0009ca70
MOV dword ptr [ESP + 0x10],EAX
SUB ESP,0xc
PUSH 0x1
MOV ECX,0x1
MOV EDX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [ESP + 0x1c]
CALL 0x0009dbfd
MOV dword ptr [EBP + 0x8],EAX
CALL 0x0009be15
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
MOV ECX,0x7
JMP 0x0009e330
MOV ECX,EAX
CMP EAX,0x5
JG 0x0009e3ee
CMP ECX,ECX
LEA EDI,[EBX + 0xffffc6c4]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0009e3f5
MOV EAX,dword ptr [EBP + 0x14]
TEST EAX,EAX
JZ 0x0009ef71
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JNZ 0x0009ef71
SUB ESP,0x8
PUSH dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xfffebfbc]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
MOV ECX,0x5
JMP 0x0009e3a1
MOV ECX,EAX
CMP EAX,0x5
JG 0x0009e43d
CMP ECX,ECX
LEA EDI,[EBX + 0xffffa4d1]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0009e444
MOV EAX,dword ptr [ESP + 0x14]
AND EAX,dword ptr [ESP + 0x28]
INC EAX
JZ 0x0009ef36
SUB ESP,0xc
LEA EAX,[EBX + 0xfffebfe8]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
MOV ECX,0x5
JMP 0x0009e3fc
MOV ECX,EAX
CMP EAX,0x9
JG 0x0009e4b0
CMP ECX,ECX
LEA EDI,[EBX + 0xffffc696]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0009e4b7
CALL 0x0009d5bb
CALL 0x00019f78
LEA ESI,[EBP + 0x20c]
MOV EAX,ESI
CALL 0x0001985b
SUB ESP,0xc
LEA EAX,[EBX + 0xfffec00c]
PUSH EAX
CALL 0x00016920
MOV ECX,0x6
MOV EDX,ESI
XOR EAX,EAX
CALL 0x00019903
MOV AL,byte ptr [EBP + 0x21f]
MOV byte ptr [EBP + 0x5c],AL
CALL 0x0009d8b5
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
MOV ECX,0x9
JMP 0x0009e44b
MOV ECX,EAX
CMP EAX,0x5
JG 0x0009e568
CMP ECX,ECX
LEA EDI,[EBX + 0xfffed020]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0009e572
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JNS 0x0009e4ff
MOV ESI,dword ptr [EBP + 0x8]
MOV EAX,ESI
CALL 0x0009cbb6
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,ESI
CALL 0x0009ca70
MOV dword ptr [ESP + 0x10],EAX
CALL 0x0009d5bb
SUB ESP,0xc
LEA EAX,[EBX + 0xffffc4c3]
PUSH EAX
CALL 0x00016920
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [ESP + 0xc],EAX
JA 0x0009e2b4
INC EAX
MOV dword ptr [ESP + 0x8],EAX
MOV EDI,dword ptr [EBX + 0x594]
MOV ESI,EDI
MOV EAX,dword ptr [ESP + 0xc]
MOV DL,byte ptr [EAX]
TEST DL,DL
JNS 0x0009ee8e
CMP DL,0x9b
JZ 0x0009ef00
MOVZX EAX,DL
CALL 0x00019f93
INC dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0xc]
CMP EAX,dword ptr [ESP + 0x8]
JNZ 0x0009e531
CALL 0x0009d8b5
JMP 0x0009e694
MOV ECX,0x5
JMP 0x0009e4c2
MOV ECX,EAX
CMP EAX,0x5
JG 0x0009e5b6
CMP ECX,ECX
LEA EDI,[EBX + 0xffffc6a2]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0009e5bd
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x0009edf4
CMP DL,0x71
JNZ 0x0009e690
MOV EDX,dword ptr [EBP + 0x1c]
MOV EAX,dword ptr [EBX + 0x574]
MOV dword ptr [EAX],EDX
JMP 0x0009e690
MOV ECX,0x5
JMP 0x0009e579
MOV ECX,EAX
CMP EAX,0x5
JG 0x0009e642
CMP ECX,ECX
LEA EDI,[EBX + 0xffffc6a7]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0009e591
MOV ECX,EAX
CMP EAX,0x5
JG 0x0009e64c
CMP ECX,ECX
LEA EDI,[EBX + 0xffffc6ac]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0009e591
MOV ECX,EAX
CMP EAX,0x5
JG 0x0009e653
CMP ECX,ECX
LEA EDI,[EBX + 0xffff3959]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0009e65a
CMP byte ptr [ESP + 0xbc],0x0
JNZ 0x0009ed3e
SUB ESP,0xc
LEA EAX,[EBX + 0xffffc6f9]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
MOV ECX,0x5
JMP 0x0009e5c4
MOV ECX,0x5
JMP 0x0009e5e3
MOV ECX,0x5
JMP 0x0009e602
MOV ECX,EAX
CMP EAX,0x7
JG 0x0009e69c
CMP ECX,ECX
LEA EDI,[EBX + 0xffffc71b]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0009e6a3
MOV ESI,dword ptr [EBP + 0x14]
TEST ESI,ESI
JNZ 0x0009ed2d
MOV EAX,dword ptr [EBX + 0x574]
MOV dword ptr [EAX],0xffffffff
MOV byte ptr [EBP + 0x12],0x0
MOV EAX,dword ptr [EBP + 0x8]
JMP 0x0009e302
MOV ECX,0x7
JMP 0x0009e661
MOV ECX,EAX
CMP EAX,0x4
JG 0x0009e73f
CMP ECX,ECX
LEA EDI,[EBX + 0xffff3dd6]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
MOVSX EDI,CL
MOV dword ptr [ESP + 0x28],EDI
TEST EDI,EDI
JNZ 0x0009e749
CMP byte ptr [ESP + 0xbc],0x0
JNZ 0x0009ebb1
MOV AL,byte ptr [EBP + 0x10]
LEA EDI,[EBX + 0xffffceff]
TEST AL,0x2
JNZ 0x0009e6ee
LEA EDI,[EBX + 0xffff3be1]
LEA ESI,[EBX + 0xffffceff]
TEST AL,0x4
JNZ 0x0009e6fe
LEA ESI,[EBX + 0xffff3be1]
LEA ECX,[EBX + 0xffffceff]
TEST AL,0x8
JNZ 0x0009e70e
LEA ECX,[EBX + 0xffff3be1]
LEA EDX,[EBX + 0xffffceff]
TEST AL,0x1
JNZ 0x0009e71e
LEA EDX,[EBX + 0xffff3be1]
SUB ESP,0x8
PUSH dword ptr [EBP + 0x54]
PUSH EDI
PUSH ESI
PUSH ECX
PUSH EDX
LEA EAX,[EBX + 0xfffec120]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x20
JMP 0x0009e302
MOV ECX,0x4
JMP 0x0009e6ae
CMP DL,0x73
JNZ 0x0009e78b
MOV EDX,dword ptr [ESP + 0x20]
LEA EAX,[EDX + 0x2]
MOV dword ptr [ESP + 0x10],EAX
MOVZX EDI,byte ptr [EDX + 0x1]
SUB ESP,0x8
PUSH EDI
PUSH EAX
CALL 0x00016ad0
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JNZ 0x0009ea91
SUB ESP,0xc
LEA EAX,[EBX + 0xfffec180]
PUSH EAX
CALL 0x0009c4a0
ADD ESP,0x10
JMP 0x0009e30a
MOV ECX,EAX
CMP EAX,0x8
JG 0x0009e7c4
CMP ECX,ECX
LEA EDI,[EBX + 0xffffa19d]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0009e7cb
SUB ESP,0xc
LEA EAX,[EBX + 0xffffa1b3]
PUSH EAX
CALL 0x0009c4a0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
MOV ECX,0x8
JMP 0x0009e792
MOV ECX,EAX
CMP EAX,0x6
JG 0x0009e830
CMP ECX,ECX
LEA EDI,[EBX + 0xffff3c24]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x0009e837
CMP byte ptr [ESP + 0xbc],0x0
JZ 0x0009e7fc
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x18],EAX
CMP byte ptr [EBP + 0x11],0x0
JZ 0x0009e99e
MOV ESI,dword ptr [ESP + 0x24]
TEST ESI,ESI
JNZ 0x0009e99e
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
LEA EAX,[EBX + 0xffffc75e]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
MOV ECX,0x6
JMP 0x0009e7d2
MOV ECX,EAX
CMP EAX,0x3
JG 0x0009e909
CMP ECX,ECX
LEA EDI,[EBX + 0xffff7cd9]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0009e7ea
MOV ECX,EAX
CMP EAX,0x3
JG 0x0009e913
CMP ECX,ECX
LEA EDI,[EBX + 0xffff48b8]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0009e7ea
CMP DL,0x78
JNZ 0x0009e891
CMP byte ptr [ESP + 0x3d],0x0
JZ 0x0009e7ea
MOV ECX,EAX
CMP EAX,0x5
JG 0x0009e91d
CMP ECX,ECX
LEA EDI,[EBX + 0xffffc77e]
MOV ESI,dword ptr [ESP + 0x8]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0009e927
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JNS 0x0009e8d4
MOV ESI,dword ptr [EBP + 0x8]
MOV EAX,ESI
CALL 0x0009cbb6
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,ESI
CALL 0x0009ca70
MOV dword ptr [ESP + 0x10],EAX
MOV ECX,dword ptr [EBP + 0x80]
MOV ESI,dword ptr [ESP + 0x10]
MOV EDX,ESI
MOV EDI,dword ptr [ESP + 0xc]
MOV EAX,EDI
CALL 0x0009be4f
MOV EDX,ESI
MOV EAX,EDI
CALL 0x0009caff
MOV EDI,EAX
MOV EDX,dword ptr [EBP + 0x80]
CMP EDX,0x19
JA 0x0009e959
LEA EAX,[EDX + 0x61]
MOVZX ESI,AL
JMP 0x0009e972
MOV ECX,0x3
JMP 0x0009e842
MOV ECX,0x3
JMP 0x0009e865
MOV ECX,0x5
JMP 0x0009e89c
LEA ESI,[ESP + 0x13c]
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,ESI
CALL 0x0009c3ff
SUB ESP,0x8
PUSH ESI
LEA EAX,[EBX + 0xffffc783]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
CALL 0x00017e10
MOV ESI,0x44
CMP EDX,0x1a
JZ 0x0009e972
MOV ESI,0x55
CMP EDX,0x1b
JZ 0x0009e972
MOV ESI,0x44
SUB ESP,0xc
PUSH dword ptr [EBP + EDX*0x4 + 0x88]
CALL 0x00016b40
ADD ESP,0x10
PUSH ESI
PUSH EAX
PUSH EDI
LEA EAX,[EBX + 0xfffec15c]
PUSH EAX
CALL 0x0009c4a0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
MOV ECX,dword ptr [EBP + 0x14]
TEST ECX,ECX
JZ 0x0009e9e3
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x18]
CALL 0x0009c9dc
TEST EAX,EAX
JNS 0x0009ea5b
INC EAX
JNZ 0x0009e694
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
LEA EAX,[EBX + 0xffffc597]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
CMP DL,0x78
JNZ 0x0009e9a5
MOV EAX,dword ptr [ESP + 0xc]
LEA EDX,[EAX + -0x1]
CALL 0x0009caff
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESP + 0x20]
LEA EAX,[EBX + 0xffffc770]
PUSH EAX
CALL 0x0009c4a0
ADD ESP,0x10
XOR ESI,ESI
MOV EAX,dword ptr [ESP + 0xc]
CMP dword ptr [EBP],EAX
JNZ 0x0009ea2a
ADD ESI,EAX
CMP dword ptr [EBP + 0x4],ESI
JNZ 0x0009ea2a
MOV dword ptr [EBP + 0x14],0x0
MOV dword ptr [EBP + 0x18],0xffffffff
MOV EAX,dword ptr [EBP + 0x8]
CMP byte ptr [ESP + 0x3c],0x78
JNZ 0x0009ea3d
MOV byte ptr [EBP + 0x12],0x0
JMP 0x0009e302
MOV DL,byte ptr [ESP + 0x3d]
AND EDX,0xffffffdf
CMP DL,0x51
JZ 0x0009ea34
CMP DL,0x4e
JNZ 0x0009e302
MOV byte ptr [EBP + 0x12],0x0
JMP 0x0009e302
MOV ESI,EAX
MOV EDI,dword ptr [ESP + 0xc]
LEA EDX,[EDI + EAX*0x1 + -0x1]
MOV EAX,EDI
CALL 0x0009caff
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x20]
LEA EAX,[EBX + 0xffffc770]
PUSH EAX
CALL 0x0009c4a0
MOV EAX,dword ptr [ESP + 0x20]
SUB EAX,EDI
INC EAX
ADD ESP,0x10
CMP EAX,ESI
JZ 0x0009ea0c
JMP 0x0009e694
LEA EAX,[EAX + 0x1]
MOV dword ptr [ESP + 0x14],EAX
MOV byte ptr [ESI],0x0
SUB ESP,0x8
PUSH EDI
PUSH EAX
CALL 0x00016ad0
ADD ESP,0x10
MOV dword ptr [ESP + 0x1c],EAX
TEST EAX,EAX
JZ 0x0009e774
MOV byte ptr [EAX],0x0
MOV AL,byte ptr [EAX + 0x1]
MOV byte ptr [ESP + 0x18],AL
MOV EDI,dword ptr [ESP + 0x30]
TEST EDI,EDI
JS 0x0009eb7d
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x0009cbb6
MOV EBX,EAX
MOV EAX,dword ptr [ESP + 0x34]
TEST EAX,EAX
JNS 0x0009eb70
MOV dword ptr [ESP + 0x34],EDI
MOV dword ptr [ESP + 0x8],0x1
SUB ESI,dword ptr [ESP + 0x10]
LEA EAX,[ESI + -0x1]
MOV dword ptr [ESP + 0xc],EAX
MOV ESI,EBX
MOV ECX,0x2
MOV EDX,dword ptr [ESP + 0x10]
MOV EAX,EBX
CALL 0x0009d344
MOV EBX,EAX
TEST EAX,EAX
JZ 0x0009eb5a
MOV EAX,dword ptr [ESP + 0xc]
LEA EDX,[EBX + EAX*0x1]
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,EBX
CALL 0x0009c26a
MOV ECX,0x2
MOV EDX,dword ptr [ESP + 0x14]
MOV EAX,EBX
CALL 0x0009c75e
ADD ESI,EAX
CMP byte ptr [ESP + 0x18],0x67
JNZ 0x0009eb9c
MOV EDX,dword ptr [ESP + 0x1c]
SUB EDX,dword ptr [ESP + 0x14]
ADD EDX,EAX
ADD EBX,EDX
MOV EAX,ESI
CALL 0x0009ca70
MOV dword ptr [ESP + 0x8],0x2
CMP EBX,EAX
JC 0x0009eafa
INC EDI
CMP dword ptr [ESP + 0x34],EDI
JL 0x0009e694
MOV EAX,ESI
CALL 0x0009caa8
MOV EBX,EAX
JMP 0x0009eaf8
CMP EAX,EDI
JGE 0x0009eae5
JMP 0x0009e694
MOV EAX,dword ptr [EBP + 0x8]
CALL 0x0009cbb6
MOV EBX,EAX
MOV EDX,EAX
MOV EAX,dword ptr [EBP]
CALL 0x0009caff
MOV EDI,EAX
MOV dword ptr [ESP + 0x30],EAX
JMP 0x0009ead5
MOV dword ptr [ESP + 0x8],0x2
INC EDI
CMP dword ptr [ESP + 0x34],EDI
JL 0x0009e694
JMP 0x0009eb65
SUB ESP,0x8
LEA EAX,[EBX + 0xffff3c6a]
PUSH EAX
PUSH dword ptr [ESP + 0x28]
CALL 0x00016c50
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0009e6db
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0xffff3be1]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBX + 0xffffc72e]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xffffc738]
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[EBX + 0xffff60fd]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xffffc752]
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBX + 0xffffc755]
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[EBX + 0xffffc722]
MOV dword ptr [ESP + 0x2c],EAX
MOV ECX,0x2
MOV ESI,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0x1c]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x0009ed18
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0xc],EAX
SUB ESP,0x8
PUSH 0x1
PUSH dword ptr [ESP + 0x1c]
MOV ESI,dword ptr [ESP + 0x38]
MOV ECX,ESI
MOV EDX,dword ptr [ESP + 0x3c]
MOV EDI,dword ptr [ESP + 0x18]
MOV EAX,EDI
CALL 0x0009c95a
POP EAX
POP EDX
PUSH 0x8
PUSH dword ptr [ESP + 0x20]
MOV ECX,ESI
LEA EDX,[EBX + 0xffffc731]
MOV EAX,EDI
CALL 0x0009c95a
POP ECX
POP EAX
PUSH 0x4
PUSH dword ptr [ESP + 0x24]
MOV ECX,ESI
LEA EDX,[EBX + 0xffffc73b]
MOV EAX,EDI
CALL 0x0009c95a
POP EAX
POP EDX
PUSH 0x2
PUSH dword ptr [ESP + 0x2c]
MOV ECX,ESI
LEA EDX,[EBX + 0xffffc747]
MOV EAX,EDI
CALL 0x0009c95a
MOV EDX,EDI
MOV ESI,dword ptr [ESP + 0x1c]
ADD ESI,EDI
MOV ECX,0x8
MOV EDI,dword ptr [ESP + 0x34]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
ADD ESP,0x10
TEST AL,AL
JNZ 0x0009ecf8
MOV dword ptr [ESP + 0x38],0x0
PUSH EDI
LEA EAX,[ESP + 0x3c]
PUSH EAX
LEA EAX,[EBX + 0xffff94e2]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x18]
LEA EAX,[EDX + EAX*0x1 + 0x8]
PUSH EAX
CALL 0x00017150
MOV EAX,dword ptr [ESP + 0x48]
LEA EDX,[EAX + -0x1]
ADD ESP,0x10
CMP EDX,0x1f
JA 0x0009ecf8
MOV dword ptr [EBP + 0x54],EAX
MOV EAX,dword ptr [ESP + 0x8]
CALL 0x00018f04
CALL 0x00018ef1
MOV dword ptr [ESP + 0x8],EAX
CMP byte ptr [EAX],0x0
JNZ 0x0009ec1d
JMP 0x0009e694
MOV dword ptr [ESP + 0xc],0x2
MOV dword ptr [ESP + 0x28],0x2
JMP 0x0009ec41
MOV ECX,dword ptr [ESP + 0x24]
TEST ECX,ECX
JNZ 0x0009e684
JMP 0x0009e3d0
MOV EDI,dword ptr [ESP + 0x14]
TEST EDI,EDI
JNS 0x0009eded
MOV EAX,dword ptr [EBP + 0x8]
CALL 0x0009cbb6
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x0009caa8
MOV EDI,EAX
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EBP + 0x4]
LEA EDX,[EAX + -0x1]
CMP EDI,EDX
JNZ 0x0009ed73
MOV dword ptr [ESP + 0xc],EAX
MOV ESI,dword ptr [EBP]
XOR ECX,ECX
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x1c]
CALL 0x0009c54d
MOV EDI,EAX
TEST EAX,EAX
JS 0x0009e694
MOV EAX,dword ptr [ESP + 0xc]
SUB EAX,ESI
MOV ESI,dword ptr [EBP]
ADD ESI,EAX
LEA EDX,[ESI + EDI*0x1 + -0x1]
MOV EAX,ESI
CALL 0x0009caff
LEA EDX,[EBX + 0xffffc62f]
CMP byte ptr [EBP + 0x11],0x0
JNZ 0x0009edb7
LEA EDX,[EBX + 0xffffceff]
SUB ESP,0xc
PUSH EDI
PUSH EAX
PUSH EDX
PUSH dword ptr [ESP + 0x34]
LEA EAX,[EBX + 0xffffc70b]
PUSH EAX
CALL 0x0009c4a0
ADD ESP,0x20
MOV EAX,dword ptr [EBP + 0x8]
TEST EDI,EDI
JZ 0x0009e302
CMP EAX,ESI
JC 0x0009e302
ADD EAX,EDI
MOV dword ptr [EBP + 0x8],EAX
JMP 0x0009e302
JZ 0x0009ed73
JMP 0x0009ed56
MOV EAX,dword ptr [EBP + 0x14]
TEST EAX,EAX
JNZ 0x0009e3d0
MOV ESI,dword ptr [EBX + 0x574]
MOV EAX,dword ptr [ESI]
MOV ECX,EAX
NOT ECX
ADD ECX,dword ptr [EBP + 0x1c]
CMP DL,0x71
JNZ 0x0009ee36
TEST ECX,ECX
JLE 0x0009e690
SUB ESP,0x8
PUSH ECX
LEA EAX,[EBX + 0xffffc6b1]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
CMP DL,0x6e
JNZ 0x0009ee5d
TEST ECX,ECX
JG 0x0009e690
SUB ESP,0xc
LEA EAX,[EBX + 0xffffc6c9]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
CMP DL,0x70
JNZ 0x0009e690
TEST EAX,EAX
JG 0x0009ee84
SUB ESP,0xc
LEA EAX,[EBX + 0xffffc6df]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
SUB EAX,0x2
MOV dword ptr [ESI],EAX
JMP 0x0009e690
CMP DL,0xa
JNZ 0x0009eeb7
PUSH dword ptr [EDI]
PUSH 0x2
PUSH 0x1
LEA EAX,[EBX + 0xffffc69f]
PUSH EAX
CALL 0x00016f00
MOV EAX,0xa
CALL 0x00019f93
ADD ESP,0x10
JMP 0x0009e550
CMP DL,0x1f
JA 0x0009eede
MOV byte ptr [ESP + 0x10],DL
MOV EAX,0x5e
CALL 0x00019f93
MOV DL,byte ptr [ESP + 0x10]
LEA EAX,[EDX + 0x40]
MOVZX EAX,AL
CALL 0x00019f93
JMP 0x0009e550
CMP DL,0x7f
JNZ 0x0009e548
MOV EAX,0x5e
CALL 0x00019f93
MOV EAX,0x3f
CALL 0x00019f93
JMP 0x0009e550
PUSH dword ptr [ESI]
PUSH 0x4
PUSH 0x1
LEA EAX,[EBX + 0xffffc605]
PUSH EAX
CALL 0x00016f00
MOV EAX,0x2e
CALL 0x00019f93
PUSH dword ptr [ESI]
PUSH 0x3
PUSH 0x1
LEA EAX,[EBX + 0xffff3ceb]
PUSH EAX
CALL 0x00016f00
ADD ESP,0x20
JMP 0x0009e550
CMP byte ptr [ESP + 0xbc],0x0
JZ 0x0009ef62
SUB ESP,0xc
PUSH dword ptr [EBP + 0x44]
CALL 0x000175a0
MOV EAX,dword ptr [ESP + 0x2c]
CALL 0x00019ba3
MOV dword ptr [EBP + 0x44],EAX
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
MOV dword ptr [EBP + 0x40],0x0
MOV EAX,dword ptr [EBP + 0x8]
JMP 0x0009e302
CMP byte ptr [ESP + 0xbc],0x0
JZ 0x0009f047
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x18]
CALL 0x0009df80
MOV EDI,EAX
MOV EAX,dword ptr [EBP + 0x84]
CMP EAX,0x1b
JA 0x0009efc0
SUB ESP,0xc
PUSH dword ptr [EBP + EAX*0x4 + 0x88]
CALL 0x000175a0
MOV EAX,dword ptr [EBP + 0x84]
MOV dword ptr [EBP + EAX*0x4 + 0x88],0x0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x80]
CMP EAX,0x1b
JA 0x0009efee
SUB ESP,0xc
PUSH dword ptr [EBP + EAX*0x4 + 0x88]
CALL 0x000175a0
MOV EAX,dword ptr [EBP + 0x80]
MOV dword ptr [EBP + EAX*0x4 + 0x88],0x0
ADD ESP,0x10
MOV ESI,dword ptr [EBP + 0x4]
MOV EAX,dword ptr [EBP]
MOV dword ptr [ESP + 0x8],EAX
LEA EDX,[ESI + -0x1]
CALL 0x0009caff
LEA ECX,[EBX + 0xffffc62f]
CMP byte ptr [EBP + 0x11],0x0
JNZ 0x0009f012
LEA ECX,[EBX + 0xffffceff]
LEA EDX,[EBX + 0xffffc65c]
TEST EDI,EDI
JS 0x0009f022
LEA EDX,[EBX + 0xffffceff]
SUB ESP,0x8
SUB ESI,dword ptr [ESP + 0x10]
PUSH ESI
PUSH EAX
PUSH ECX
PUSH EDX
PUSH dword ptr [EBP + 0x44]
LEA EAX,[EBX + 0xffffc684]
PUSH EAX
CALL 0x0009c4a0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x20
JMP 0x0009e302
MOV EAX,dword ptr [EBP + 0x44]
TEST EAX,EAX
JZ 0x0009f057
CMP byte ptr [EAX],0x0
JNZ 0x0009ef87
SUB ESP,0xc
LEA EAX,[EBX + 0xffffc59f]
PUSH EAX
CALL 0x0009c4e0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
JMP 0x0009e302
LEA EDX,[EAX + -0x9]
MOV dword ptr [ESP + 0x20],ESI
CMP DL,0x17
JNZ 0x0009f0b9
LEA EAX,[ESP + 0x3c]
MOV dword ptr [ESP + 0x8],EAX
MOV EDX,EAX
JMP 0x0009e162
CMP DL,0x9
JZ 0x0009e149
LEA EDX,[ESP + 0x34]
CALL 0x0009d46a
MOV ESI,EAX
MOV AL,byte ptr [ESI]
CMP AL,0x20
JZ 0x0009f0ec
CMP AL,0x9
JZ 0x0009f0ec
TEST AL,AL
JZ 0x0009e154
LEA EDX,[EAX + -0x9]
MOV dword ptr [ESP + 0x20],ESI
CMP DL,0x4
JBE 0x0009f07d
LEA EDX,[ESP + 0x3c]
MOV dword ptr [ESP + 0x8],EDX
INC ESI
INC EDX
MOV byte ptr [EDX + -0x1],AL
MOV AL,byte ptr [ESI]
TEST AL,AL
JZ 0x0009e162
LEA ECX,[EAX + -0x9]
CMP CL,0x17
JZ 0x0009e162
CMP CL,0x4
JBE 0x0009e162
JMP 0x0009f0c6
INC ESI
JMP 0x0009f0a0
INC ESI
MOV dword ptr [ESP + 0x30],0x1
MOV EDX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0xc]
CALL 0x0009caff
MOV dword ptr [ESP + 0x34],EAX
JMP 0x0009f0a0
MOV CL,byte ptr [ESI + 0x1]
INC ESI
JMP 0x0009e0d2
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0009e093(char *param_1)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte bVar4;\n  byte *pbVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char cVar14;\n  undefined4 extraout_ECX;\n  size_t sVar15;\n  undefined1 *puVar16;\n  byte bVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  uint uVar21;\n  undefined1 *puVar22;\n  uint uVar23;\n  int in_GS_OFFSET;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  byte *local_1d4;\n  byte *local_1d0;\n  byte *local_1cc;\n  uint local_1c8;\n  byte *local_1c4;\n  byte *local_1bc;\n  uint local_1b4;\n  uint local_1ac;\n  uint local_1a8;\n  int local_1a4;\n  byte local_1a0 [128];\n  byte local_120 [128];\n  undefined1 local_a0 [128];\n  int local_20;\n  \n  piVar3 = DAT_000d1700;\n  bVar27 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cVar14 = *param_1;\n  if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_0009e302:\n  iVar8 = FUN_0009e04d();\n  piVar3[2] = iVar8;\nLAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }\n  return;\ncode_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();\n  if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }\n  goto LAB_0009eafa;\n}\n\n" comment (function_definition "void __regparm3 FUN_0009e093(char *param_1)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte bVar4;\n  byte *pbVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char cVar14;\n  undefined4 extraout_ECX;\n  size_t sVar15;\n  undefined1 *puVar16;\n  byte bVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  uint uVar21;\n  undefined1 *puVar22;\n  uint uVar23;\n  int in_GS_OFFSET;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  byte *local_1d4;\n  byte *local_1d0;\n  byte *local_1cc;\n  uint local_1c8;\n  byte *local_1c4;\n  byte *local_1bc;\n  uint local_1b4;\n  uint local_1ac;\n  uint local_1a8;\n  int local_1a4;\n  byte local_1a0 [128];\n  byte local_120 [128];\n  undefined1 local_a0 [128];\n  int local_20;\n  \n  piVar3 = DAT_000d1700;\n  bVar27 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cVar14 = *param_1;\n  if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_0009e302:\n  iVar8 = FUN_0009e04d();\n  piVar3[2] = iVar8;\nLAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }\n  return;\ncode_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();\n  if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }\n  goto LAB_0009eafa;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0009e093(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte bVar4;\n  byte *pbVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char cVar14;\n  undefined4 extraout_ECX;\n  size_t sVar15;\n  undefined1 *puVar16;\n  byte bVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  uint uVar21;\n  undefined1 *puVar22;\n  uint uVar23;\n  int in_GS_OFFSET;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  byte *local_1d4;\n  byte *local_1d0;\n  byte *local_1cc;\n  uint local_1c8;\n  byte *local_1c4;\n  byte *local_1bc;\n  uint local_1b4;\n  uint local_1ac;\n  uint local_1a8;\n  int local_1a4;\n  byte local_1a0 [128];\n  byte local_120 [128];\n  undefined1 local_a0 [128];\n  int local_20;\n  \n  piVar3 = DAT_000d1700;\n  bVar27 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cVar14 = *param_1;\n  if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_0009e302:\n  iVar8 = FUN_0009e04d();\n  piVar3[2] = iVar8;\nLAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }\n  return;\ncode_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();\n  if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }\n  goto LAB_0009eafa;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "byte *local_1d4;" type_identifier (pointer_declarator "*local_1d4" * identifier) ;) (declaration "byte *local_1d0;" type_identifier (pointer_declarator "*local_1d0" * identifier) ;) (declaration "byte *local_1cc;" type_identifier (pointer_declarator "*local_1cc" * identifier) ;) (declaration "uint local_1c8;" type_identifier identifier ;) (declaration "byte *local_1c4;" type_identifier (pointer_declarator "*local_1c4" * identifier) ;) (declaration "byte *local_1bc;" type_identifier (pointer_declarator "*local_1bc" * identifier) ;) (declaration "uint local_1b4;" type_identifier identifier ;) (declaration "uint local_1ac;" type_identifier identifier ;) (declaration "uint local_1a8;" type_identifier identifier ;) (declaration "int local_1a4;" primitive_type identifier ;) (declaration "byte local_1a0 [128];" type_identifier (array_declarator "local_1a0 [128]" identifier [ number_literal ]) ;) (declaration "byte local_120 [128];" type_identifier (array_declarator "local_120 [128]" identifier [ number_literal ]) ;) (declaration "undefined1 local_a0 [128];" type_identifier (array_declarator "local_a0 [128]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "piVar3 = DAT_000d1700;" (assignment_expression "piVar3 = DAT_000d1700" identifier = identifier) ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "cVar14 = *param_1;" (assignment_expression "cVar14 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (if_statement "if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }" if (parenthesized_expression "(cVar14 == ':')" ( (binary_expression "cVar14 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }" { (expression_statement "cVar14 = param_1[1];" (assignment_expression "cVar14 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "local_1a8 = 0xffffffff;" (assignment_expression "local_1a8 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_1ac = 0xffffffff;" (assignment_expression "local_1ac = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_1d0 = (byte *)*DAT_000d1700;" (assignment_expression "local_1d0 = (byte *)*DAT_000d1700" identifier = (cast_expression "(byte *)*DAT_000d1700" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000d1700" * identifier))) ;) (expression_statement "local_1cc = (byte *)(DAT_000d1700[1] + -1);" (assignment_expression "local_1cc = (byte *)(DAT_000d1700[1] + -1)" identifier = (cast_expression "(byte *)(DAT_000d1700[1] + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000d1700[1] + -1)" ( (binary_expression "DAT_000d1700[1] + -1" (subscript_expression "DAT_000d1700[1]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "FUN_0009caff();" (call_expression "FUN_0009caff()" identifier (argument_list "()" ( ))) ;) (while_statement "while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }" while (parenthesized_expression "((cVar14 == ' ' || (cVar14 == '\t')))" ( (parenthesized_expression "(cVar14 == ' ' || (cVar14 == '\t'))" ( (binary_expression "cVar14 == ' ' || (cVar14 == '\t')" (binary_expression "cVar14 == ' '" identifier == (char_literal "' '" ' character ')) || (parenthesized_expression "(cVar14 == '\t')" ( (binary_expression "cVar14 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) )) (compound_statement "{\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "cVar14 = *param_1;" (assignment_expression "cVar14 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) })) (expression_statement "local_1c4 = (byte *)piVar3[0x11];" (assignment_expression "local_1c4 = (byte *)piVar3[0x11]" identifier = (cast_expression "(byte *)piVar3[0x11]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x11]" identifier [ number_literal ]))) ;) (if_statement "if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }" if (parenthesized_expression "(cVar14 == '%')" ( (binary_expression "cVar14 == '%'" identifier == (char_literal "'%'" ' character ')) )) (compound_statement "{\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }" { (expression_statement "pbVar5 = (byte *)(param_1 + 1);" (assignment_expression "pbVar5 = (byte *)(param_1 + 1)" identifier = (cast_expression "(byte *)(param_1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) ;) (expression_statement "local_1ac = 1;" (assignment_expression "local_1ac = 1" identifier = number_literal) ;) (expression_statement "local_1a8 = FUN_0009caff();" (assignment_expression "local_1a8 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (labeled_statement "LAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }" statement_identifier : (for_statement "for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }" for ( ; (parenthesized_expression "(bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9))" ( (comma_expression "bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)" (assignment_expression "bVar4 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) , (binary_expression "bVar4 == 0x20 || (bVar4 == 9)" (binary_expression "bVar4 == 0x20" identifier == number_literal) || (parenthesized_expression "(bVar4 == 9)" ( (binary_expression "bVar4 == 9" identifier == number_literal) )))) )) ; (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ) (compound_statement "{\n      }" { }))) (if_statement "if (bVar4 == 0) goto LAB_0009e154;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009e154;" goto statement_identifier ;)) (expression_statement "bVar17 = bVar4 - 9;" (assignment_expression "bVar17 = bVar4 - 9" identifier = (binary_expression "bVar4 - 9" identifier - number_literal)) ;) (expression_statement "local_1bc = pbVar5;" (assignment_expression "local_1bc = pbVar5" identifier = identifier) ;) (labeled_statement "LAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" statement_identifier : (if_statement "if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" if (parenthesized_expression "(bVar17 < 5)" ( (binary_expression "bVar17 < 5" identifier < number_literal) )) (compound_statement "{\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }" { (labeled_statement "LAB_0009f07d:\n        pbVar20 = local_1a0;" statement_identifier : (expression_statement "pbVar20 = local_1a0;" (assignment_expression "pbVar20 = local_1a0" identifier = identifier) ;)) (expression_statement "pbVar5 = local_1bc;" (assignment_expression "pbVar5 = local_1bc" identifier = identifier) ;) }) (else_clause "else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" else (compound_statement "{\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" { (expression_statement "pbVar19 = local_1a0;" (assignment_expression "pbVar19 = local_1a0" identifier = identifier) ;) (expression_statement "pbVar5 = local_1bc;" (assignment_expression "pbVar5 = local_1bc" identifier = identifier) ;) (do_statement "do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));" do (compound_statement "{\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar20 = pbVar19 + 1;" (assignment_expression "pbVar20 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar19 = bVar4;" (assignment_expression "*pbVar19 = bVar4" (pointer_expression "*pbVar19" * identifier) = identifier) ;) (expression_statement "bVar4 = *pbVar5;" (assignment_expression "bVar4 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (if_statement "if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;" if (parenthesized_expression "((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17))" ( (binary_expression "(bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)" (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "((byte)(bVar4 - 9) == 0x17)" ( (binary_expression "(byte)(bVar4 - 9) == 0x17" (call_expression "(byte)(bVar4 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 9)" ( (binary_expression "bVar4 - 9" identifier - number_literal) ))) == number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" identifier = identifier) ;) }) while (parenthesized_expression "(4 < (byte)(bVar4 - 9))" ( (binary_expression "4 < (byte)(bVar4 - 9)" number_literal < (call_expression "(byte)(bVar4 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 9)" ( (binary_expression "bVar4 - 9" identifier - number_literal) )))) )) ;) })))) }) (else_clause "else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }" else (compound_statement "{\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }" { (for_statement "for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }" for ( (assignment_expression "pbVar5 = (byte *)FUN_0009d46a()" identifier = (cast_expression "(byte *)FUN_0009d46a()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009d46a()" identifier (argument_list "()" ( ))))) ; (parenthesized_expression "(bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9))" ( (comma_expression "bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)" (assignment_expression "bVar4 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) , (binary_expression "bVar4 == 0x20 || (bVar4 == 9)" (binary_expression "bVar4 == 0x20" identifier == number_literal) || (parenthesized_expression "(bVar4 == 9)" ( (binary_expression "bVar4 == 9" identifier == number_literal) )))) )) ; (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) (if_statement "if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }" if (parenthesized_expression "(bVar4 == 0x2c)" ( (binary_expression "bVar4 == 0x2c" identifier == number_literal) )) (compound_statement "{\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }" { (do_statement "do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);" do (compound_statement "{\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        }" { (do_statement "do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);" do (compound_statement "{\n            pbVar5 = pbVar5 + 1;\n          }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pbVar5 == 0x20)" ( (binary_expression "*pbVar5 == 0x20" (pointer_expression "*pbVar5" * identifier) == number_literal) )) ;) }) while (parenthesized_expression "(*pbVar5 == 9)" ( (binary_expression "*pbVar5 == 9" (pointer_expression "*pbVar5" * identifier) == number_literal) )) ;) (expression_statement "pbVar5 = (byte *)FUN_0009d46a();" (assignment_expression "pbVar5 = (byte *)FUN_0009d46a()" identifier = (cast_expression "(byte *)FUN_0009d46a()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009d46a()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0009f0a0;" goto statement_identifier ;) })) (if_statement "if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }" { (expression_statement "bVar17 = bVar4 - 9;" (assignment_expression "bVar17 = bVar4 - 9" identifier = (binary_expression "bVar4 - 9" identifier - number_literal)) ;) (expression_statement "local_1bc = pbVar5;" (assignment_expression "local_1bc = pbVar5" identifier = identifier) ;) (if_statement "if (bVar17 != 0x17) goto LAB_0009f0b9;" if (parenthesized_expression "(bVar17 != 0x17)" ( (binary_expression "bVar17 != 0x17" identifier != number_literal) )) (goto_statement "goto LAB_0009f0b9;" goto statement_identifier ;)) (goto_statement "goto LAB_0009f07d;" goto statement_identifier ;) })) (labeled_statement "LAB_0009e154:\n      pbVar20 = local_1a0;" statement_identifier : (expression_statement "pbVar20 = local_1a0;" (assignment_expression "pbVar20 = local_1a0" identifier = identifier) ;)) (expression_statement "local_1bc = pbVar5;" (assignment_expression "local_1bc = pbVar5" identifier = identifier) ;) }))) (expression_statement "local_1d4 = local_1a0;" (assignment_expression "local_1d4 = local_1a0" identifier = identifier) ;) (expression_statement "*pbVar20 = 0;" (assignment_expression "*pbVar20 = 0" (pointer_expression "*pbVar20" * identifier) = number_literal) ;) (for_statement "for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }" for ( ; (parenthesized_expression "(*pbVar5 == 0x20 || (*pbVar5 == 9))" ( (binary_expression "*pbVar5 == 0x20 || (*pbVar5 == 9)" (binary_expression "*pbVar5 == 0x20" (pointer_expression "*pbVar5" * identifier) == number_literal) || (parenthesized_expression "(*pbVar5 == 9)" ( (binary_expression "*pbVar5 == 9" (pointer_expression "*pbVar5" * identifier) == number_literal) ))) )) ; (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ) (compound_statement "{\n    }" { })) (expression_statement "__strcpy_chk(local_120,pbVar5,0x80);" (call_expression "__strcpy_chk(local_120,pbVar5,0x80)" identifier (argument_list "(local_120,pbVar5,0x80)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar6 = (undefined1 *)FUN_00018cc2();" (assignment_expression "puVar6 = (undefined1 *)FUN_00018cc2()" identifier = (cast_expression "(undefined1 *)FUN_00018cc2()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018cc2()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar25 = puVar6 != (undefined1 *)0x0;" (assignment_expression "bVar25 = puVar6 != (undefined1 *)0x0" identifier = (binary_expression "puVar6 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar25) {\n      *puVar6 = 0;\n    }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n      *puVar6 = 0;\n    }" { (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) })) (expression_statement "local_1c8 = local_1ac;" (assignment_expression "local_1c8 = local_1ac" identifier = identifier) ;) (if_statement "if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" if (parenthesized_expression "(-1 < (int)local_1ac)" ( (binary_expression "-1 < (int)local_1ac" number_literal < (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" { (expression_statement "local_1d0 = (byte *)*piVar3;" (assignment_expression "local_1d0 = (byte *)*piVar3" identifier = (cast_expression "(byte *)*piVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (expression_statement "uVar21 = local_1ac;" (assignment_expression "uVar21 = local_1ac" identifier = identifier) ;) (if_statement "if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" if (parenthesized_expression "(1 < (int)local_1ac)" ( (binary_expression "1 < (int)local_1ac" number_literal < (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" { (do_statement "do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);" do (compound_statement "{\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        }" { (expression_statement "local_1d0 = (byte *)FUN_0009caa8();" (assignment_expression "local_1d0 = (byte *)FUN_0009caa8()" identifier = (cast_expression "(byte *)FUN_0009caa8()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009caa8()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar21 != 1)" ( (binary_expression "uVar21 != 1" identifier != number_literal) )) ;) })) (expression_statement "local_1cc = (byte *)FUN_0009ca70();" (assignment_expression "local_1cc = (byte *)FUN_0009ca70()" identifier = (cast_expression "(byte *)FUN_0009ca70()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))))) ;) })) (if_statement "if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" if (parenthesized_expression "(-1 < (int)local_1a8)" ( (binary_expression "-1 < (int)local_1a8" number_literal < (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" { (expression_statement "uVar21 = local_1a8;" (assignment_expression "uVar21 = local_1a8" identifier = identifier) ;) (if_statement "if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" if (parenthesized_expression "(1 < (int)local_1a8)" ( (binary_expression "1 < (int)local_1a8" number_literal < (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" { (do_statement "do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);" do (compound_statement "{\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        }" { (expression_statement "FUN_0009caa8();" (call_expression "FUN_0009caa8()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar21 != 1)" ( (binary_expression "uVar21 != 1" identifier != number_literal) )) ;) })) (expression_statement "local_1cc = (byte *)FUN_0009ca70();" (assignment_expression "local_1cc = (byte *)FUN_0009ca70()" identifier = (cast_expression "(byte *)FUN_0009ca70()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "sVar7 = strlen((char *)local_1d4);" (assignment_expression "sVar7 = strlen((char *)local_1d4)" identifier = (call_expression "strlen((char *)local_1d4)" identifier (argument_list "((char *)local_1d4)" ( (cast_expression "(char *)local_1d4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(sVar7 == 0)" ( (binary_expression "sVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }" { (if_statement "if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }" if (parenthesized_expression "(-1 < (int)local_1ac)" ( (binary_expression "-1 < (int)local_1ac" number_literal < (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }" { (expression_statement "iVar8 = *piVar3;" (assignment_expression "iVar8 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }" if (parenthesized_expression "(1 < (int)local_1ac)" ( (binary_expression "1 < (int)local_1ac" number_literal < (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }" { (do_statement "do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);" do (compound_statement "{\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          }" { (expression_statement "iVar8 = FUN_0009caa8();" (assignment_expression "iVar8 = FUN_0009caa8()" identifier = (call_expression "FUN_0009caa8()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_1ac = local_1ac - 1;" (assignment_expression "local_1ac = local_1ac - 1" identifier = (binary_expression "local_1ac - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(local_1ac != 1)" ( (binary_expression "local_1ac != 1" identifier != number_literal) )) ;) })) (expression_statement "piVar3[2] = iVar8;" (assignment_expression "piVar3[2] = iVar8" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0009be15();" (call_expression "FUN_0009be15()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" else (if_statement "if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(local_1a0[0] == 0x21)" ( (binary_expression "local_1a0[0] == 0x21" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }" { (expression_statement "FUN_0009d5bb();" (call_expression "FUN_0009d5bb()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = system((char *)(local_1bc + 1));" (assignment_expression "iVar8 = system((char *)(local_1bc + 1))" identifier = (call_expression "system((char *)(local_1bc + 1))" identifier (argument_list "((char *)(local_1bc + 1))" ( (cast_expression "(char *)(local_1bc + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1bc + 1)" ( (binary_expression "local_1bc + 1" identifier + number_literal) ))) )))) ;) (if_statement "if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }" { (expression_statement "__printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);" (call_expression "__printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX)" identifier (argument_list "(1,"\nshell returned %i\n\n",iVar8,extraout_ECX)" ( number_literal , (string_literal ""\nshell returned %i\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "FUN_00019903();" (call_expression "FUN_00019903()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);" (assignment_expression "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f)" (pointer_expression "*(undefined1 *)(piVar3 + 0x17)" * (cast_expression "(undefined1 *)(piVar3 + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x17)" ( (binary_expression "piVar3 + 0x17" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)piVar3 + 0x21f)" * (cast_expression "(undefined1 *)((int)piVar3 + 0x21f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x21f)" ( (binary_expression "(int)piVar3 + 0x21f" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (labeled_statement "LAB_0009e2b4:\n      FUN_0009d8b5();" statement_identifier : (expression_statement "FUN_0009d8b5();" (call_expression "FUN_0009d8b5()" identifier (argument_list "()" ( ))) ;)) }) (else_clause "else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" else (if_statement "if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "((local_1a0[0] == 0x3d) && (local_1a0[1] == 0))" ( (binary_expression "(local_1a0[0] == 0x3d) && (local_1a0[1] == 0)" (parenthesized_expression "(local_1a0[0] == 0x3d)" ( (binary_expression "local_1a0[0] == 0x3d" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(local_1a0[1] == 0)" ( (binary_expression "local_1a0[1] == 0" (subscript_expression "local_1a0[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }" { (if_statement "if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        local_1c8 = FUN_0009caff();\n      }" { (expression_statement "local_1c8 = FUN_0009caff();" (assignment_expression "local_1c8 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "FUN_0009c4a0("%d",local_1c8);" (call_expression "FUN_0009c4a0("%d",local_1c8)" identifier (argument_list "("%d",local_1c8)" ( (string_literal ""%d"" " string_content ") , identifier ))) ;) }) (else_clause "else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" else (compound_statement "{\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }" if (parenthesized_expression "(7 < (int)sVar7)" ( (binary_expression "7 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        sVar15 = 7;\n      }" { (expression_statement "sVar15 = 7;" (assignment_expression "sVar15 = 7" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)"delete";" (assignment_expression "pbVar19 = (byte *)"delete"" identifier = (cast_expression "(byte *)"delete"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""delete"" " string_content "))) ;) (do_statement "do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }" { (if_statement "if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }" { (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0009ca70();" (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar8 = FUN_0009dbfd(1);" (assignment_expression "iVar8 = FUN_0009dbfd(1)" identifier = (call_expression "FUN_0009dbfd(1)" identifier (argument_list "(1)" ( number_literal )))) ;) (expression_statement "piVar3[2] = iVar8;" (assignment_expression "piVar3[2] = iVar8" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0009be15();" (call_expression "FUN_0009be15()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }" else (compound_statement "{\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          sVar15 = 5;\n        }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xcd0e4;" (assignment_expression "pbVar19 = (byte *)0xcd0e4" identifier = (cast_expression "(byte *)0xcd0e4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }" { (if_statement "if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }" if (parenthesized_expression "((piVar3[5] == 0) || (bVar25))" ( (binary_expression "(piVar3[5] == 0) || (bVar25)" (parenthesized_expression "(piVar3[5] == 0)" ( (binary_expression "piVar3[5] == 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(bVar25)" ( identifier ))) )) (compound_statement "{\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }" { (if_statement "if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }" if (parenthesized_expression "((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0'))))" ( (binary_expression "(local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))" (parenthesized_expression "(local_120[0] == 0)" ( (binary_expression "local_120[0] == 0" (subscript_expression "local_120[0]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))" ( (parenthesized_expression "((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0'))" ( (binary_expression "(char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')" (binary_expression "(char *)piVar3[0x11] == (char *)0x0" (cast_expression "(char *)piVar3[0x11]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x11]" identifier [ number_literal ])) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(*(char *)piVar3[0x11] == '\0')" ( (binary_expression "*(char *)piVar3[0x11] == '\0'" (pointer_expression "*(char *)piVar3[0x11]" * (cast_expression "(char *)piVar3[0x11]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x11]" identifier [ number_literal ]))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n              FUN_0009c4e0("No current filename");\n            }" { (expression_statement "FUN_0009c4e0("No current filename");" (call_expression "FUN_0009c4e0("No current filename")" identifier (argument_list "("No current filename")" ( (string_literal ""No current filename"" " string_content ") ))) ;) }) (else_clause "else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }" else (compound_statement "{\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }" { (expression_statement "iVar8 = FUN_0009df80();" (assignment_expression "iVar8 = FUN_0009df80()" identifier = (call_expression "FUN_0009df80()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }" if (parenthesized_expression "((uint)piVar3[0x21] < 0x1c)" ( (binary_expression "(uint)piVar3[0x21] < 0x1c" (cast_expression "(uint)piVar3[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x21]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }" { (expression_statement "free((void *)piVar3[piVar3[0x21] + 0x22]);" (call_expression "free((void *)piVar3[piVar3[0x21] + 0x22])" identifier (argument_list "((void *)piVar3[piVar3[0x21] + 0x22])" ( (cast_expression "(void *)piVar3[piVar3[0x21] + 0x22]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[piVar3[0x21] + 0x22]" identifier [ (binary_expression "piVar3[0x21] + 0x22" (subscript_expression "piVar3[0x21]" identifier [ number_literal ]) + number_literal) ])) ))) ;) (expression_statement "piVar3[piVar3[0x21] + 0x22] = 0;" (assignment_expression "piVar3[piVar3[0x21] + 0x22] = 0" (subscript_expression "piVar3[piVar3[0x21] + 0x22]" identifier [ (binary_expression "piVar3[0x21] + 0x22" (subscript_expression "piVar3[0x21]" identifier [ number_literal ]) + number_literal) ]) = number_literal) ;) })) (if_statement "if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }" if (parenthesized_expression "((uint)piVar3[0x20] < 0x1c)" ( (binary_expression "(uint)piVar3[0x20] < 0x1c" (cast_expression "(uint)piVar3[0x20]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x20]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }" { (expression_statement "free((void *)piVar3[piVar3[0x20] + 0x22]);" (call_expression "free((void *)piVar3[piVar3[0x20] + 0x22])" identifier (argument_list "((void *)piVar3[piVar3[0x20] + 0x22])" ( (cast_expression "(void *)piVar3[piVar3[0x20] + 0x22]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[piVar3[0x20] + 0x22]" identifier [ (binary_expression "piVar3[0x20] + 0x22" (subscript_expression "piVar3[0x20]" identifier [ number_literal ]) + number_literal) ])) ))) ;) (expression_statement "piVar3[piVar3[0x20] + 0x22] = 0;" (assignment_expression "piVar3[piVar3[0x20] + 0x22] = 0" (subscript_expression "piVar3[piVar3[0x20] + 0x22]" identifier [ (binary_expression "piVar3[0x20] + 0x22" (subscript_expression "piVar3[0x20]" identifier [ number_literal ]) + number_literal) ]) = number_literal) ;) })) (expression_statement "iVar12 = piVar3[1];" (assignment_expression "iVar12 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "iVar1 = *piVar3;" (assignment_expression "iVar1 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar9 = " [Readonly]";" (assignment_expression "pcVar9 = " [Readonly]"" identifier = (string_literal "" [Readonly]"" " string_content ")) ;) (if_statement "if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }" if (parenthesized_expression "(*(char *)((int)piVar3 + 0x11) == '\0')" ( (binary_expression "*(char *)((int)piVar3 + 0x11) == '\0'" (pointer_expression "*(char *)((int)piVar3 + 0x11)" * (cast_expression "(char *)((int)piVar3 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x11)" ( (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcVar9 = "";\n              }" { (expression_statement "pcVar9 = "";" (assignment_expression "pcVar9 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "pcVar10 = " [New file]";" (assignment_expression "pcVar10 = " [New file]"" identifier = (string_literal "" [New file]"" " string_content ")) ;) (if_statement "if (-1 < iVar8) {\n                pcVar10 = "";\n              }" if (parenthesized_expression "(-1 < iVar8)" ( (binary_expression "-1 < iVar8" number_literal < identifier) )) (compound_statement "{\n                pcVar10 = "";\n              }" { (expression_statement "pcVar10 = "";" (assignment_expression "pcVar10 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);" (call_expression "FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1)" identifier (argument_list "("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1)" ( (string_literal ""\'%s\'%s%s %dL, %dC"" " escape_sequence string_content escape_sequence string_content ") , (subscript_expression "piVar3[0x11]" identifier [ number_literal ]) , identifier , identifier , identifier , (binary_expression "iVar12 - iVar1" identifier - identifier) ))) ;) }))) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) (labeled_statement "LAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);" statement_identifier : (expression_statement "FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);" (call_expression "FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4)" identifier (argument_list "("No write since last change (:%s! overrides)",local_1d4)" ( (string_literal ""No write since last change (:%s! overrides)"" " string_content ") , identifier ))) ;)) }) (else_clause "else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }" else (compound_statement "{\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            sVar15 = 5;\n          }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xcaef1;" (assignment_expression "pbVar19 = (byte *)0xcaef1" identifier = (cast_expression "(byte *)0xcaef1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);" do (compound_statement "{\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }" { (if_statement "if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }" if (parenthesized_expression "((local_1ac & local_1a8) == 0xffffffff)" ( (binary_expression "(local_1ac & local_1a8) == 0xffffffff" (parenthesized_expression "(local_1ac & local_1a8)" ( (binary_expression "local_1ac & local_1a8" identifier & identifier) )) == number_literal) )) (compound_statement "{\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }" { (if_statement "if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }" if (parenthesized_expression "(local_120[0] == 0)" ( (binary_expression "local_120[0] == 0" (subscript_expression "local_120[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                piVar3[0x10] = 0;\n              }" { (expression_statement "piVar3[0x10] = 0;" (assignment_expression "piVar3[0x10] = 0" (subscript_expression "piVar3[0x10]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }" else (compound_statement "{\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }" { (expression_statement "free((void *)piVar3[0x11]);" (call_expression "free((void *)piVar3[0x11])" identifier (argument_list "((void *)piVar3[0x11])" ( (cast_expression "(void *)piVar3[0x11]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x11]" identifier [ number_literal ])) ))) ;) (expression_statement "iVar8 = FUN_00019ba3();" (assignment_expression "iVar8 = FUN_00019ba3()" identifier = (call_expression "FUN_00019ba3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar3[0x11] = iVar8;" (assignment_expression "piVar3[0x11] = iVar8" (subscript_expression "piVar3[0x11]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n              FUN_0009c4e0("No address allowed on this command");\n            }" else (compound_statement "{\n              FUN_0009c4e0("No address allowed on this command");\n            }" { (expression_statement "FUN_0009c4e0("No address allowed on this command");" (call_expression "FUN_0009c4e0("No address allowed on this command")" identifier (argument_list "("No address allowed on this command")" ( (string_literal ""No address allowed on this command"" " string_content ") ))) ;) }))) }) (else_clause "else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }" else (compound_statement "{\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }" if (parenthesized_expression "(9 < (int)sVar7)" ( (binary_expression "9 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              sVar15 = 9;\n            }" { (expression_statement "sVar15 = 9;" (assignment_expression "sVar15 = 9" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)"features";" (assignment_expression "pbVar19 = (byte *)"features"" identifier = (cast_expression "(byte *)"features"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""features"" " string_content "))) ;) (do_statement "do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);" do (compound_statement "{\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }" { (expression_statement "FUN_0009d5bb();" (call_expression "FUN_0009d5bb()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" identifier (argument_list "()" ( ))) ;) (expression_statement "puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );" (call_expression "puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  )" identifier (argument_list "(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  )" ( (string_literal ""These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"" " string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content ") ))) ;) (expression_statement "FUN_00019903();" (call_expression "FUN_00019903()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);" (assignment_expression "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f)" (pointer_expression "*(undefined1 *)(piVar3 + 0x17)" * (cast_expression "(undefined1 *)(piVar3 + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x17)" ( (binary_expression "piVar3 + 0x17" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)piVar3 + 0x21f)" * (cast_expression "(undefined1 *)((int)piVar3 + 0x21f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x21f)" ( (binary_expression "(int)piVar3 + 0x21f" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "FUN_0009d8b5();" (call_expression "FUN_0009d8b5()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }" else (compound_statement "{\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                sVar15 = 5;\n              }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xbda40;" (assignment_expression "pbVar19 = (byte *)0xbda40" identifier = (cast_expression "(byte *)0xbda40" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);" do (compound_statement "{\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }" { (if_statement "if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }" { (expression_statement "local_1d0 = (byte *)FUN_0009cbb6();" (assignment_expression "local_1d0 = (byte *)FUN_0009cbb6()" identifier = (cast_expression "(byte *)FUN_0009cbb6()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_1cc = (byte *)FUN_0009ca70();" (assignment_expression "local_1cc = (byte *)FUN_0009ca70()" identifier = (cast_expression "(byte *)FUN_0009ca70()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "FUN_0009d5bb();" (call_expression "FUN_0009d5bb()" identifier (argument_list "()" ( ))) ;) (expression_statement "puts("\r");" (call_expression "puts("\r")" identifier (argument_list "("\r")" ( (string_literal ""\r"" " escape_sequence ") ))) ;) (expression_statement "puVar2 = PTR_stdout_000d0fb4;" (assignment_expression "puVar2 = PTR_stdout_000d0fb4" identifier = identifier) ;) (if_statement "if (local_1cc < local_1d0) goto LAB_0009e2b4;" if (parenthesized_expression "(local_1cc < local_1d0)" ( (binary_expression "local_1cc < local_1d0" identifier < identifier) )) (goto_statement "goto LAB_0009e2b4;" goto statement_identifier ;)) (do_statement "do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);" do (compound_statement "{\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                }" { (expression_statement "bVar27 = *local_1d0;" (assignment_expression "bVar27 = *local_1d0" identifier = (pointer_expression "*local_1d0" * identifier)) ;) (if_statement "if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" if (parenthesized_expression "((char)bVar27 < '\0')" ( (binary_expression "(char)bVar27 < '\0'" (cast_expression "(char)bVar27" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }" { (if_statement "if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }" if (parenthesized_expression "(bVar27 == 0x9b)" ( (binary_expression "bVar27 == 0x9b" identifier == number_literal) )) (compound_statement "{\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }" { (expression_statement "fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);" (call_expression "fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2)" identifier (argument_list "(&DAT_000cd025,1,4,*(FILE **)puVar2)" ( (pointer_expression "&DAT_000cd025" & identifier) , number_literal , number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) (expression_statement "fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);" (call_expression "fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2)" identifier (argument_list "(&DAT_000c470b,1,3,*(FILE **)puVar2)" ( (pointer_expression "&DAT_000c470b" & identifier) , number_literal , number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) }) (else_clause "else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }" else (compound_statement "{\nLAB_0009e548:\n                      FUN_00019f93();\n                    }" { (labeled_statement "LAB_0009e548:\n                      FUN_00019f93();" statement_identifier : (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;)) }))) }) (else_clause "else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" else (if_statement "if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" if (parenthesized_expression "(bVar27 == 10)" ( (binary_expression "bVar27 == 10" identifier == number_literal) )) (compound_statement "{\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }" { (expression_statement "fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);" (call_expression "fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2)" identifier (argument_list "(&DAT_000cd0bf,1,2,*(FILE **)puVar2)" ( (pointer_expression "&DAT_000cd0bf" & identifier) , number_literal , number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" else (if_statement "if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" if (parenthesized_expression "(bVar27 < 0x20)" ( (binary_expression "bVar27 < 0x20" identifier < number_literal) )) (compound_statement "{\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" { (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" else (compound_statement "{\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" { (if_statement "if (bVar27 != 0x7f) goto LAB_0009e548;" if (parenthesized_expression "(bVar27 != 0x7f)" ( (binary_expression "bVar27 != 0x7f" identifier != number_literal) )) (goto_statement "goto LAB_0009e548;" goto statement_identifier ;)) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) }))))))) (expression_statement "local_1d0 = local_1d0 + 1;" (assignment_expression "local_1d0 = local_1d0 + 1" identifier = (binary_expression "local_1d0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_1d0 != local_1cc + 1)" ( (binary_expression "local_1d0 != local_1cc + 1" identifier != (binary_expression "local_1cc + 1" identifier + number_literal)) )) ;) (expression_statement "FUN_0009d8b5();" (call_expression "FUN_0009d8b5()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }" else (compound_statement "{\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  sVar15 = 5;\n                }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_000cd0c2;" (assignment_expression "pbVar19 = &DAT_000cd0c2" identifier = (pointer_expression "&DAT_000cd0c2" & identifier)) ;) (do_statement "do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);" do (compound_statement "{\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }" { (labeled_statement "LAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" statement_identifier : (if_statement "if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }" { (if_statement "if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }" if (parenthesized_expression "(local_1a0[0] == 0x71)" ( (binary_expression "local_1a0[0] == 0x71" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }" { (expression_statement "*(int *)PTR_optind_000d0f94 = piVar3[7];" (assignment_expression "*(int *)PTR_optind_000d0f94 = piVar3[7]" (pointer_expression "*(int *)PTR_optind_000d0f94" * (cast_expression "(int *)PTR_optind_000d0f94" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "piVar3[7]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" else (compound_statement "{\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" { (if_statement "if (piVar3[5] != 0) goto LAB_0009e3d0;" if (parenthesized_expression "(piVar3[5] != 0)" ( (binary_expression "piVar3[5] != 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0009e3d0;" goto statement_identifier ;)) (expression_statement "uVar21 = *(uint *)PTR_optind_000d0f94;" (assignment_expression "uVar21 = *(uint *)PTR_optind_000d0f94" identifier = (pointer_expression "*(uint *)PTR_optind_000d0f94" * (cast_expression "(uint *)PTR_optind_000d0f94" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar8 = ~uVar21 + piVar3[7];" (assignment_expression "iVar8 = ~uVar21 + piVar3[7]" identifier = (binary_expression "~uVar21 + piVar3[7]" (unary_expression "~uVar21" ~ identifier) + (subscript_expression "piVar3[7]" identifier [ number_literal ]))) ;) (if_statement "if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" if (parenthesized_expression "(local_1a0[0] == 0x71)" ( (binary_expression "local_1a0[0] == 0x71" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }" { (if_statement "if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }" if (parenthesized_expression "(0 < iVar8)" ( (binary_expression "0 < iVar8" number_literal < identifier) )) (compound_statement "{\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }" { (expression_statement "FUN_0009c4e0("%d more file(s) to edit",iVar8);" (call_expression "FUN_0009c4e0("%d more file(s) to edit",iVar8)" identifier (argument_list "("%d more file(s) to edit",iVar8)" ( (string_literal ""%d more file(s) to edit"" " string_content ") , identifier ))) ;) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) }) (else_clause "else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" else (if_statement "if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" if (parenthesized_expression "(local_1a0[0] == 0x6e)" ( (binary_expression "local_1a0[0] == 0x6e" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }" { (if_statement "if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }" if (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) (compound_statement "{\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }" { (expression_statement "FUN_0009c4e0("No more files to edit");" (call_expression "FUN_0009c4e0("No more files to edit")" identifier (argument_list "("No more files to edit")" ( (string_literal ""No more files to edit"" " string_content ") ))) ;) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) }) (else_clause "else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" else (if_statement "if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" if (parenthesized_expression "(local_1a0[0] == 0x70)" ( (binary_expression "local_1a0[0] == 0x70" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" { (if_statement "if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }" { (expression_statement "FUN_0009c4e0("No previous files to edit");" (call_expression "FUN_0009c4e0("No previous files to edit")" identifier (argument_list "("No previous files to edit")" ( (string_literal ""No previous files to edit"" " string_content ") ))) ;) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) (expression_statement "*(uint *)PTR_optind_000d0f94 = uVar21 - 2;" (assignment_expression "*(uint *)PTR_optind_000d0f94 = uVar21 - 2" (pointer_expression "*(uint *)PTR_optind_000d0f94" * (cast_expression "(uint *)PTR_optind_000d0f94" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar21 - 2" identifier - number_literal)) ;) })))))) })))) }) (else_clause "else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }" else (compound_statement "{\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    sVar15 = 5;\n                  }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_000cd0c7;" (assignment_expression "pbVar19 = &DAT_000cd0c7" identifier = (pointer_expression "&DAT_000cd0c7" & identifier)) ;) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" do (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0009e591;" goto statement_identifier ;)) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    sVar15 = 5;\n                  }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_000cd0cc;" (assignment_expression "pbVar19 = &DAT_000cd0cc" identifier = (pointer_expression "&DAT_000cd0cc" & identifier)) ;) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" do (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0009e591;" goto statement_identifier ;)) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    sVar15 = 5;\n                  }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xc4379;" (assignment_expression "pbVar19 = (byte *)0xc4379" identifier = (cast_expression "(byte *)0xc4379" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" do (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" { (if_statement "if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }" if (parenthesized_expression "(local_120[0] == 0)" ( (binary_expression "local_120[0] == 0" (subscript_expression "local_120[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }" { (expression_statement "FUN_0009c4e0("No filename given");" (call_expression "FUN_0009c4e0("No filename given")" identifier (argument_list "("No filename given")" ( (string_literal ""No filename given"" " string_content ") ))) ;) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) (if_statement "if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }" { (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();" statement_identifier : (expression_statement "local_1d0 = (byte *)FUN_0009caa8();" (assignment_expression "local_1d0 = (byte *)FUN_0009caa8()" identifier = (cast_expression "(byte *)FUN_0009caa8()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009caa8()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }" if (parenthesized_expression "(local_1d0 == (byte *)piVar3[1] + -1)" ( (binary_expression "local_1d0 == (byte *)piVar3[1] + -1" identifier == (binary_expression "(byte *)piVar3[1] + -1" (cast_expression "(byte *)piVar3[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[1]" identifier [ number_literal ])) + number_literal)) )) (compound_statement "{\n                        local_1d0 = (byte *)piVar3[1];\n                      }" { (expression_statement "local_1d0 = (byte *)piVar3[1];" (assignment_expression "local_1d0 = (byte *)piVar3[1]" identifier = (cast_expression "(byte *)piVar3[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[1]" identifier [ number_literal ]))) ;) })) }) (else_clause "else if (local_1ac != 0) goto LAB_0009ed56;" else (if_statement "if (local_1ac != 0) goto LAB_0009ed56;" if (parenthesized_expression "(local_1ac != 0)" ( (binary_expression "local_1ac != 0" identifier != number_literal) )) (goto_statement "goto LAB_0009ed56;" goto statement_identifier ;)))) (expression_statement "iVar8 = *piVar3;" (assignment_expression "iVar8 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar12 = FUN_0009c54d();" (assignment_expression "iVar12 = FUN_0009c54d()" identifier = (call_expression "FUN_0009c54d()" identifier (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }" if (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) )) (compound_statement "{\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }" { (expression_statement "iVar1 = *piVar3;" (assignment_expression "iVar1 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar9 = " [Readonly]";" (assignment_expression "pcVar9 = " [Readonly]"" identifier = (string_literal "" [Readonly]"" " string_content ")) ;) (if_statement "if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }" if (parenthesized_expression "(*(char *)((int)piVar3 + 0x11) == '\0')" ( (binary_expression "*(char *)((int)piVar3 + 0x11) == '\0'" (pointer_expression "*(char *)((int)piVar3 + 0x11)" * (cast_expression "(char *)((int)piVar3 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x11)" ( (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        pcVar9 = "";\n                      }" { (expression_statement "pcVar9 = "";" (assignment_expression "pcVar9 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);" (call_expression "FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12)" identifier (argument_list "("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12)" ( (string_literal ""\'%s\'%s %dL, %dC"" " escape_sequence string_content escape_sequence string_content ") , identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }" if (parenthesized_expression "((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2]))" ( (binary_expression "(iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])" (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])" ( (binary_expression "local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2]" (binary_expression "local_1d0 + (iVar1 - iVar8)" identifier + (parenthesized_expression "(iVar1 - iVar8)" ( (binary_expression "iVar1 - iVar8" identifier - identifier) ))) <= (cast_expression "(byte *)piVar3[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }" { (expression_statement "piVar3[2] = (int)((byte *)piVar3[2] + iVar12);" (assignment_expression "piVar3[2] = (int)((byte *)piVar3[2] + iVar12)" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (cast_expression "(int)((byte *)piVar3[2] + iVar12)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((byte *)piVar3[2] + iVar12)" ( (binary_expression "(byte *)piVar3[2] + iVar12" (cast_expression "(byte *)piVar3[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])) + identifier) )))) ;) })) })) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }" if (parenthesized_expression "(7 < (int)sVar7)" ( (binary_expression "7 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    sVar15 = 7;\n                  }" { (expression_statement "sVar15 = 7;" (assignment_expression "sVar15 = 7" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)"rewind";" (assignment_expression "pbVar19 = (byte *)"rewind"" identifier = (cast_expression "(byte *)"rewind"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""rewind"" " string_content "))) ;) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" do (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" if (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" ( (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier) )) (compound_statement "{\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }" if (parenthesized_expression "(4 < (int)sVar7)" ( (binary_expression "4 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      sVar15 = 4;\n                    }" { (expression_statement "sVar15 = 4;" (assignment_expression "sVar15 = 4" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xc47f6;" (assignment_expression "pbVar19 = (byte *)0xc47f6" identifier = (cast_expression "(byte *)0xc47f6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);" do (compound_statement "{\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }" { (if_statement "if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }" if (parenthesized_expression "(local_120[0] != 0)" ( (binary_expression "local_120[0] != 0" (subscript_expression "local_120[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }" { (expression_statement "iVar8 = strcasecmp((char *)local_120,"all");" (assignment_expression "iVar8 = strcasecmp((char *)local_120,"all")" identifier = (call_expression "strcasecmp((char *)local_120,"all")" identifier (argument_list "((char *)local_120,"all")" ( (cast_expression "(char *)local_120" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""all"" " string_content ") )))) ;) (expression_statement "bVar25 = iVar8 == 0;" (assignment_expression "bVar25 = iVar8 == 0" identifier = (binary_expression "iVar8 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }" { (expression_statement "local_1b4 = 0;" (assignment_expression "local_1b4 = 0" identifier = number_literal) ;) (expression_statement "local_1d4 = local_120;" (assignment_expression "local_1d4 = local_120" identifier = identifier) ;) (do_statement "do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);" do (compound_statement "{\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          }" { (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_000c4601;" (assignment_expression "pbVar19 = &DAT_000c4601" identifier = (pointer_expression "&DAT_000c4601" & identifier)) ;) (do_statement "do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);" do (compound_statement "{\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar25 = *pbVar5 == *pbVar19;" (assignment_expression "bVar25 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }" if (parenthesized_expression "((!bVar24 && !bVar25) == bVar24)" ( (binary_expression "(!bVar24 && !bVar25) == bVar24" (parenthesized_expression "(!bVar24 && !bVar25)" ( (binary_expression "!bVar24 && !bVar25" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (compound_statement "{\n                              local_1b4 = 2;\n                            }" { (expression_statement "local_1b4 = 2;" (assignment_expression "local_1b4 = 2" identifier = number_literal) ;) })) (expression_statement "FUN_0009c95a(&DAT_000cd14e,1);" (call_expression "FUN_0009c95a(&DAT_000cd14e,1)" identifier (argument_list "(&DAT_000cd14e,1)" ( (pointer_expression "&DAT_000cd14e" & identifier) , number_literal ))) ;) (expression_statement "FUN_0009c95a(&DAT_000cd158,8);" (call_expression "FUN_0009c95a(&DAT_000cd158,8)" identifier (argument_list "(&DAT_000cd158,8)" ( (pointer_expression "&DAT_000cd158" & identifier) , number_literal ))) ;) (expression_statement "FUN_0009c95a("ic",4);" (call_expression "FUN_0009c95a("ic",4)" identifier (argument_list "("ic",4)" ( (string_literal ""ic"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0009c95a(&DAT_000cd172,2);" (call_expression "FUN_0009c95a(&DAT_000cd172,2)" identifier (argument_list "(&DAT_000cd172,2)" ( (pointer_expression "&DAT_000cd172" & identifier) , number_literal ))) ;) (expression_statement "bVar25 = CARRY4(local_1b4,(uint)local_1d4);" (assignment_expression "bVar25 = CARRY4(local_1b4,(uint)local_1d4)" identifier = (call_expression "CARRY4(local_1b4,(uint)local_1d4)" identifier (argument_list "(local_1b4,(uint)local_1d4)" ( identifier , (cast_expression "(uint)local_1d4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "bVar24 = local_1d4 + local_1b4 == (byte *)0x0;" (assignment_expression "bVar24 = local_1d4 + local_1b4 == (byte *)0x0" identifier = (binary_expression "local_1d4 + local_1b4 == (byte *)0x0" (binary_expression "local_1d4 + local_1b4" identifier + identifier) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "pbVar5 = local_1d4 + local_1b4;" (assignment_expression "pbVar5 = local_1d4 + local_1b4" identifier = (binary_expression "local_1d4 + local_1b4" identifier + identifier)) ;) (expression_statement "pbVar19 = (byte *)"tabstop=";" (assignment_expression "pbVar19 = (byte *)"tabstop="" identifier = (cast_expression "(byte *)"tabstop="" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""tabstop="" " string_content "))) ;) (do_statement "do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);" do (compound_statement "{\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            }" { (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" identifier = identifier) ;) (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar25 = *pbVar5 < *pbVar19;" (assignment_expression "bVar25 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar24 = *pbVar5 == *pbVar19;" (assignment_expression "bVar24 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" identifier = identifier) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }" if (parenthesized_expression "((!bVar25 && !bVar24) == bVar25)" ( (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }" { (expression_statement "local_1a4 = 0;" (assignment_expression "local_1a4 = 0" identifier = number_literal) ;) (expression_statement "sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);" (call_expression "sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20)" identifier (argument_list "((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20)" ( (cast_expression "(char *)(local_1d4 + local_1b4 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1d4 + local_1b4 + 8)" ( (binary_expression "local_1d4 + local_1b4 + 8" (binary_expression "local_1d4 + local_1b4" identifier + identifier) + number_literal) ))) , (string_literal ""%u"" " string_content ") , (pointer_expression "&local_1a4" & identifier) , identifier ))) ;) (if_statement "if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }" if (parenthesized_expression "(local_1a4 - 1U < 0x20)" ( (binary_expression "local_1a4 - 1U < 0x20" (binary_expression "local_1a4 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                                piVar3[0x15] = local_1a4;\n                              }" { (expression_statement "piVar3[0x15] = local_1a4;" (assignment_expression "piVar3[0x15] = local_1a4" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) = identifier) ;) })) })) (expression_statement "FUN_00018f04();" (call_expression "FUN_00018f04()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1d4 = (byte *)FUN_00018ef1();" (assignment_expression "local_1d4 = (byte *)FUN_00018ef1()" identifier = (cast_expression "(byte *)FUN_00018ef1()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018ef1()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar25 = *local_1d4 == 0;" (assignment_expression "bVar25 = *local_1d4 == 0" identifier = (binary_expression "*local_1d4 == 0" (pointer_expression "*local_1d4" * identifier) == number_literal)) ;) }) while (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) ;) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) })) (expression_statement "bVar27 = *(byte *)(piVar3 + 4);" (assignment_expression "bVar27 = *(byte *)(piVar3 + 4)" identifier = (pointer_expression "*(byte *)(piVar3 + 4)" * (cast_expression "(byte *)(piVar3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 4)" ( (binary_expression "piVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = &DAT_000cd91f;" (assignment_expression "puVar6 = &DAT_000cd91f" identifier = (pointer_expression "&DAT_000cd91f" & identifier)) ;) (if_statement "if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }" if (parenthesized_expression "((bVar27 & 2) == 0)" ( (binary_expression "(bVar27 & 2) == 0" (parenthesized_expression "(bVar27 & 2)" ( (binary_expression "bVar27 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        puVar6 = &DAT_000c4601;\n                      }" { (expression_statement "puVar6 = &DAT_000c4601;" (assignment_expression "puVar6 = &DAT_000c4601" identifier = (pointer_expression "&DAT_000c4601" & identifier)) ;) })) (expression_statement "puVar22 = &DAT_000cd91f;" (assignment_expression "puVar22 = &DAT_000cd91f" identifier = (pointer_expression "&DAT_000cd91f" & identifier)) ;) (if_statement "if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }" if (parenthesized_expression "((bVar27 & 4) == 0)" ( (binary_expression "(bVar27 & 4) == 0" (parenthesized_expression "(bVar27 & 4)" ( (binary_expression "bVar27 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        puVar22 = &DAT_000c4601;\n                      }" { (expression_statement "puVar22 = &DAT_000c4601;" (assignment_expression "puVar22 = &DAT_000c4601" identifier = (pointer_expression "&DAT_000c4601" & identifier)) ;) })) (expression_statement "puVar16 = &DAT_000cd91f;" (assignment_expression "puVar16 = &DAT_000cd91f" identifier = (pointer_expression "&DAT_000cd91f" & identifier)) ;) (if_statement "if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }" if (parenthesized_expression "((bVar27 & 8) == 0)" ( (binary_expression "(bVar27 & 8) == 0" (parenthesized_expression "(bVar27 & 8)" ( (binary_expression "bVar27 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        puVar16 = &DAT_000c4601;\n                      }" { (expression_statement "puVar16 = &DAT_000c4601;" (assignment_expression "puVar16 = &DAT_000c4601" identifier = (pointer_expression "&DAT_000c4601" & identifier)) ;) })) (expression_statement "puVar18 = &DAT_000cd91f;" (assignment_expression "puVar18 = &DAT_000cd91f" identifier = (pointer_expression "&DAT_000cd91f" & identifier)) ;) (if_statement "if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }" if (parenthesized_expression "((bVar27 & 1) == 0)" ( (binary_expression "(bVar27 & 1) == 0" (parenthesized_expression "(bVar27 & 1)" ( (binary_expression "bVar27 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        puVar18 = &DAT_000c4601;\n                      }" { (expression_statement "puVar18 = &DAT_000c4601;" (assignment_expression "puVar18 = &DAT_000c4601" identifier = (pointer_expression "&DAT_000c4601" & identifier)) ;) })) (expression_statement "FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);" (call_expression "FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15])" identifier (argument_list "("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15])" ( (string_literal ""%sautoindent %sflash %signorecase %sshowmatch tabstop=%u"" " string_content ") , identifier , identifier , identifier , identifier , (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) ))) ;) }) (else_clause "else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }" else (compound_statement "{\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }" { (if_statement "if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }" if (parenthesized_expression "(local_1a0[0] == 0x73)" ( (binary_expression "local_1a0[0] == 0x73" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }" { (expression_statement "bVar27 = local_1bc[1];" (assignment_expression "bVar27 = local_1bc[1]" identifier = (subscript_expression "local_1bc[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);" (assignment_expression "pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27)" identifier = (call_expression "strchr((char *)(local_1bc + 2),(uint)bVar27)" identifier (argument_list "((char *)(local_1bc + 2),(uint)bVar27)" ( (cast_expression "(char *)(local_1bc + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1bc + 2)" ( (binary_expression "local_1bc + 2" identifier + number_literal) ))) , (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }" if (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }" { (expression_statement "*pcVar9 = '\0';" (assignment_expression "*pcVar9 = '\0'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);" (assignment_expression "pcVar10 = strchr(pcVar9 + 1,(uint)bVar27)" identifier = (call_expression "strchr(pcVar9 + 1,(uint)bVar27)" identifier (argument_list "(pcVar9 + 1,(uint)bVar27)" ( (binary_expression "pcVar9 + 1" identifier + number_literal) , (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }" { (expression_statement "*pcVar10 = '\0';" (assignment_expression "*pcVar10 = '\0'" (pointer_expression "*pcVar10" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar14 = pcVar10[1];" (assignment_expression "cVar14 = pcVar10[1]" identifier = (subscript_expression "pcVar10[1]" identifier [ number_literal ])) ;) (if_statement "if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }" { (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1ac = FUN_0009caff();" (assignment_expression "local_1ac = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                              FUN_0009cbb6();\n                            }" else (compound_statement "{\n                              FUN_0009cbb6();\n                            }" { (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar21 = local_1ac;" (assignment_expression "uVar21 = local_1ac" identifier = identifier) ;) (if_statement "if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }" if (parenthesized_expression "(((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8))" ( (binary_expression "((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)" (parenthesized_expression "((int)local_1a8 < 0)" ( (binary_expression "(int)local_1a8 < 0" (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)" ( (comma_expression "uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8" (assignment_expression "uVar21 = local_1a8" identifier = identifier) , (binary_expression "(int)local_1ac <= (int)local_1a8" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }" { (labeled_statement "LAB_0009eafa:\n                              local_1a8 = uVar21;" statement_identifier : (expression_statement "local_1a8 = uVar21;" (assignment_expression "local_1a8 = uVar21" identifier = identifier) ;)) (expression_statement "iVar8 = FUN_0009d344();" (assignment_expression "iVar8 = FUN_0009d344()" identifier = (call_expression "FUN_0009d344()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar21 = local_1a8;" (assignment_expression "uVar21 = local_1a8" identifier = identifier) ;) (if_statement "if (iVar8 == 0) goto LAB_0009eb5a;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009eb5a;" goto statement_identifier ;)) (expression_statement "FUN_0009c26a();" (call_expression "FUN_0009c26a()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = FUN_0009c75e();" (assignment_expression "iVar12 = FUN_0009c75e()" identifier = (call_expression "FUN_0009c75e()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar14 == 'g') goto code_r0x0009eb3b;" if (parenthesized_expression "(cVar14 == 'g')" ( (binary_expression "cVar14 == 'g'" identifier == (char_literal "'g'" ' character ')) )) (goto_statement "goto code_r0x0009eb3b;" goto statement_identifier ;)) (if_statement "if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;" if (parenthesized_expression "((int)(local_1ac + 1) <= (int)local_1a8)" ( (binary_expression "(int)(local_1ac + 1) <= (int)local_1a8" (cast_expression "(int)(local_1ac + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_1ac + 1)" ( (binary_expression "local_1ac + 1" identifier + number_literal) ))) <= (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0009eb65;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) })) (expression_statement "FUN_0009c4a0(":s expression missing delimiters");" (call_expression "FUN_0009c4a0(":s expression missing delimiters")" identifier (argument_list "(":s expression missing delimiters")" ( (string_literal "":s expression missing delimiters"" " string_content ") ))) ;) (goto_statement "goto LAB_0009e30a;" goto statement_identifier ;) })) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }" if (parenthesized_expression "(8 < (int)sVar7)" ( (binary_expression "8 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        sVar15 = 8;\n                      }" { (expression_statement "sVar15 = 8;" (assignment_expression "sVar15 = 8" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xcabbd;" (assignment_expression "pbVar19 = (byte *)0xcabbd" identifier = (cast_expression "(byte *)0xcabbd" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);" do (compound_statement "{\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n                        FUN_0009c4a0("1.30.1");\n                      }" { (expression_statement "FUN_0009c4a0("1.30.1");" (call_expression "FUN_0009c4a0("1.30.1")" identifier (argument_list "("1.30.1")" ( (string_literal ""1.30.1"" " string_content ") ))) ;) }) (else_clause "else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }" else (compound_statement "{\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }" if (parenthesized_expression "(6 < (int)sVar7)" ( (binary_expression "6 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          sVar15 = 6;\n                        }" { (expression_statement "sVar15 = 6;" (assignment_expression "sVar15 = 6" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xc4644;" (assignment_expression "pbVar19 = (byte *)0xc4644" identifier = (cast_expression "(byte *)0xc4644" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);" do (compound_statement "{\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }" if (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" ( (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier) )) (compound_statement "{\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }" if (parenthesized_expression "(3 < (int)sVar7)" ( (binary_expression "3 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                            sVar15 = 3;\n                          }" { (expression_statement "sVar15 = 3;" (assignment_expression "sVar15 = 3" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_000c86f9;" (assignment_expression "pbVar19 = &DAT_000c86f9" identifier = (pointer_expression "&DAT_000c86f9" & identifier)) ;) (do_statement "do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);" do (compound_statement "{\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }" if (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" ( (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier) )) (compound_statement "{\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }" if (parenthesized_expression "(3 < (int)sVar7)" ( (binary_expression "3 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                              sVar15 = 3;\n                            }" { (expression_statement "sVar15 = 3;" (assignment_expression "sVar15 = 3" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xc52d8;" (assignment_expression "pbVar19 = (byte *)0xc52d8" identifier = (cast_expression "(byte *)0xc52d8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);" do (compound_statement "{\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }" if (parenthesized_expression "(((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0))))" ( (binary_expression "((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))" (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" ( (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier) )) && (parenthesized_expression "((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))" ( (parenthesized_expression "(local_1a0[0] != 0x78 || (local_1a0[1] != 0))" ( (binary_expression "local_1a0[0] != 0x78 || (local_1a0[1] != 0)" (binary_expression "local_1a0[0] != 0x78" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(local_1a0[1] != 0)" ( (binary_expression "local_1a0[1] != 0" (subscript_expression "local_1a0[1]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }" { (if_statement "if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                                sVar7 = 5;\n                              }" { (expression_statement "sVar7 = 5;" (assignment_expression "sVar7 = 5" identifier = number_literal) ;) })) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (expression_statement "pbVar5 = &DAT_000cd19e;" (assignment_expression "pbVar5 = &DAT_000cd19e" identifier = (pointer_expression "&DAT_000cd19e" & identifier)) ;) (do_statement "do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);" do (compound_statement "{\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              }" { (if_statement "if (sVar7 == 0) break;" if (parenthesized_expression "(sVar7 == 0)" ( (binary_expression "sVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar7 = sVar7 - 1;" (assignment_expression "sVar7 = sVar7 - 1" identifier = (binary_expression "sVar7 - 1" identifier - number_literal)) ;) (expression_statement "bVar25 = *local_1d4 < *pbVar5;" (assignment_expression "bVar25 = *local_1d4 < *pbVar5" identifier = (binary_expression "*local_1d4 < *pbVar5" (pointer_expression "*local_1d4" * identifier) < (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "bVar24 = *local_1d4 == *pbVar5;" (assignment_expression "bVar24 = *local_1d4 == *pbVar5" identifier = (binary_expression "*local_1d4 == *pbVar5" (pointer_expression "*local_1d4" * identifier) == (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;" (assignment_expression "local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "local_1d4 + (uint)bVar27 * -2 + 1" (binary_expression "local_1d4 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }" if (parenthesized_expression "((!bVar25 && !bVar24) == bVar25)" ( (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }" { (if_statement "if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }" { (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0009ca70();" (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0009be4f();" (call_expression "FUN_0009be4f()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar21 = piVar3[0x20];" (assignment_expression "uVar21 = piVar3[0x20]" identifier = (subscript_expression "piVar3[0x20]" identifier [ number_literal ])) ;) (if_statement "if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }" if (parenthesized_expression "(uVar21 < 0x1a)" ( (binary_expression "uVar21 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }" { (expression_statement "uVar23 = uVar21 + 0x61 & 0xff;" (assignment_expression "uVar23 = uVar21 + 0x61 & 0xff" identifier = (binary_expression "uVar21 + 0x61 & 0xff" (binary_expression "uVar21 + 0x61" identifier + number_literal) & number_literal)) ;) }) (else_clause "else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }" else (compound_statement "{\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }" { (expression_statement "uVar23 = 0x44;" (assignment_expression "uVar23 = 0x44" identifier = number_literal) ;) (if_statement "if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }" if (parenthesized_expression "((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b))" ( (binary_expression "(uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)" (parenthesized_expression "(uVar21 != 0x1a)" ( (binary_expression "uVar21 != 0x1a" identifier != number_literal) )) && (parenthesized_expression "(uVar23 = 0x55, uVar21 != 0x1b)" ( (comma_expression "uVar23 = 0x55, uVar21 != 0x1b" (assignment_expression "uVar23 = 0x55" identifier = number_literal) , (binary_expression "uVar21 != 0x1b" identifier != number_literal)) ))) )) (compound_statement "{\n                                    uVar23 = 0x44;\n                                  }" { (expression_statement "uVar23 = 0x44;" (assignment_expression "uVar23 = 0x44" identifier = number_literal) ;) })) }))) (expression_statement "sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);" (assignment_expression "sVar7 = strlen((char *)piVar3[uVar21 + 0x22])" identifier = (call_expression "strlen((char *)piVar3[uVar21 + 0x22])" identifier (argument_list "((char *)piVar3[uVar21 + 0x22])" ( (cast_expression "(char *)piVar3[uVar21 + 0x22]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[uVar21 + 0x22]" identifier [ (binary_expression "uVar21 + 0x22" identifier + number_literal) ])) )))) ;) (expression_statement "FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);" (call_expression "FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23)" identifier (argument_list "("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23)" ( (string_literal ""Yank %d lines (%d chars) into [%c]"" " string_content ") , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }" else (compound_statement "{\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }" { (expression_statement "FUN_0009c3ff();" (call_expression "FUN_0009c3ff()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0009c4e0("\'%s\' is not implemented",local_a0);" (call_expression "FUN_0009c4e0("\'%s\' is not implemented",local_a0)" identifier (argument_list "("\'%s\' is not implemented",local_a0)" ( (string_literal ""\'%s\' is not implemented"" " escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) }))) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) })) })) (if_statement "if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }" if (parenthesized_expression "(local_120[0] != 0)" ( (binary_expression "local_120[0] != 0" (subscript_expression "local_120[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                          local_1c4 = local_120;\n                        }" { (expression_statement "local_1c4 = local_120;" (assignment_expression "local_1c4 = local_120" identifier = identifier) ;) })) (if_statement "if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }" if (parenthesized_expression "((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25))" ( (binary_expression "(*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)" (parenthesized_expression "(*(char *)((int)piVar3 + 0x11) == '\0')" ( (binary_expression "*(char *)((int)piVar3 + 0x11) == '\0'" (pointer_expression "*(char *)((int)piVar3 + 0x11)" * (cast_expression "(char *)((int)piVar3 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x11)" ( (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar25)" ( identifier ))) )) (compound_statement "{\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }" { (if_statement "if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }" if (parenthesized_expression "((piVar3[5] == 0) && (local_1a0[0] == 0x78))" ( (binary_expression "(piVar3[5] == 0) && (local_1a0[0] == 0x78)" (parenthesized_expression "(piVar3[5] == 0)" ( (binary_expression "piVar3[5] == 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(local_1a0[0] == 0x78)" ( (binary_expression "local_1a0[0] == 0x78" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }" { (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);" (call_expression "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0)" identifier (argument_list "("\'%s\' %dL, %dC",local_1c4,uVar13,0)" ( (string_literal ""\'%s\' %dL, %dC"" " escape_sequence string_content escape_sequence string_content ") , identifier , identifier , number_literal ))) ;) (expression_statement "pbVar5 = (byte *)0x0;" (assignment_expression "pbVar5 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }" statement_identifier : (if_statement "if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }" if (parenthesized_expression "(((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5))" ( (binary_expression "((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)" (parenthesized_expression "((byte *)*piVar3 == local_1d0)" ( (binary_expression "(byte *)*piVar3 == local_1d0" (cast_expression "(byte *)*piVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier)) == identifier) )) && (parenthesized_expression "((byte *)piVar3[1] == local_1d0 + (int)pbVar5)" ( (binary_expression "(byte *)piVar3[1] == local_1d0 + (int)pbVar5" (cast_expression "(byte *)piVar3[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[1]" identifier [ number_literal ])) == (binary_expression "local_1d0 + (int)pbVar5" identifier + (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }" { (expression_statement "piVar3[5] = 0;" (assignment_expression "piVar3[5] = 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[6] = -1;" (assignment_expression "piVar3[6] = -1" (subscript_expression "piVar3[6]" identifier [ number_literal ]) = number_literal) ;) }))) (if_statement "if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" if (parenthesized_expression "((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51))" ( (binary_expression "(local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)" (parenthesized_expression "(local_1a0[0] == 0x78)" ( (binary_expression "local_1a0[0] == 0x78" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((local_1a0[1] & 0xdf) == 0x51)" ( (binary_expression "(local_1a0[1] & 0xdf) == 0x51" (parenthesized_expression "(local_1a0[1] & 0xdf)" ( (binary_expression "local_1a0[1] & 0xdf" (subscript_expression "local_1a0[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" { (expression_statement "*(undefined1 *)((int)piVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 0x12)" * (cast_expression "(undefined1 *)((int)piVar3 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x12)" ( (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" else (if_statement "if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" if (parenthesized_expression "((local_1a0[1] & 0xdf) == 0x4e)" ( (binary_expression "(local_1a0[1] & 0xdf) == 0x4e" (parenthesized_expression "(local_1a0[1] & 0xdf)" ( (binary_expression "local_1a0[1] & 0xdf" (subscript_expression "local_1a0[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" { (expression_statement "*(undefined1 *)((int)piVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 0x12)" * (cast_expression "(undefined1 *)((int)piVar3 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x12)" ( (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })))) }) (else_clause "else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }" else (compound_statement "{\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }" { (expression_statement "pbVar5 = (byte *)FUN_0009c9dc();" (assignment_expression "pbVar5 = (byte *)FUN_0009c9dc()" identifier = (cast_expression "(byte *)FUN_0009c9dc()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009c9dc()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }" if (parenthesized_expression "((int)pbVar5 < 0)" ( (binary_expression "(int)pbVar5 < 0" (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }" { (if_statement "if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }" if (parenthesized_expression "(pbVar5 == (byte *)0xffffffff)" ( (binary_expression "pbVar5 == (byte *)0xffffffff" identifier == (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }" { (expression_statement "FUN_0009c4e0("\'%s\' %m",local_1c4);" (call_expression "FUN_0009c4e0("\'%s\' %m",local_1c4)" identifier (argument_list "("\'%s\' %m",local_1c4)" ( (string_literal ""\'%s\' %m"" " escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) })) }) (else_clause "else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }" else (compound_statement "{\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }" { (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);" (call_expression "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5)" identifier (argument_list "("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5)" ( (string_literal ""\'%s\' %dL, %dC"" " escape_sequence string_content escape_sequence string_content ") , identifier , identifier , identifier ))) ;) (if_statement "if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;" if (parenthesized_expression "(local_1cc + (1 - (int)local_1d0) == pbVar5)" ( (binary_expression "local_1cc + (1 - (int)local_1d0) == pbVar5" (binary_expression "local_1cc + (1 - (int)local_1d0)" identifier + (parenthesized_expression "(1 - (int)local_1d0)" ( (binary_expression "1 - (int)local_1d0" number_literal - (cast_expression "(int)local_1d0" ( (type_descriptor "int" primitive_type) ) identifier)) ))) == identifier) )) (goto_statement "goto LAB_0009ea0c;" goto statement_identifier ;)) }))) }))) }) (else_clause "else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }" else (compound_statement "{\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }" { (expression_statement "FUN_0009c4e0("\'%s\' is read only",local_1c4);" (call_expression "FUN_0009c4e0("\'%s\' is read only",local_1c4)" identifier (argument_list "("\'%s\' is read only",local_1c4)" ( (string_literal ""\'%s\' is read only"" " escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) }))) }))) }))) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) (if_statement "if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;" if (parenthesized_expression "((piVar3[5] != 0) && (!bVar25))" ( (binary_expression "(piVar3[5] != 0) && (!bVar25)" (parenthesized_expression "(piVar3[5] != 0)" ( (binary_expression "piVar3[5] != 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) ))) )) (goto_statement "goto LAB_0009e3d0;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;" (assignment_expression "*(undefined4 *)PTR_optind_000d0f94 = 0xffffffff" (pointer_expression "*(undefined4 *)PTR_optind_000d0f94" * (cast_expression "(undefined4 *)PTR_optind_000d0f94" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (expression_statement "*(undefined1 *)((int)piVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 0x12)" * (cast_expression "(undefined1 *)((int)piVar3 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x12)" ( (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }))) }))) }))) }))) }))) }))))))) })) (labeled_statement "LAB_0009e302:\n  iVar8 = FUN_0009e04d();" statement_identifier : (expression_statement "iVar8 = FUN_0009e04d();" (assignment_expression "iVar8 = FUN_0009e04d()" identifier = (call_expression "FUN_0009e04d()" identifier (argument_list "()" ( )))) ;)) (expression_statement "piVar3[2] = iVar8;" (assignment_expression "piVar3[2] = iVar8" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00017e10();\n  }" { comment (expression_statement "FUN_00017e10();" (call_expression "FUN_00017e10()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) (labeled_statement "code_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();" statement_identifier : (expression_statement "pcVar11 = (char *)FUN_0009ca70();" (assignment_expression "pcVar11 = (char *)FUN_0009ca70()" identifier = (cast_expression "(char *)FUN_0009ca70()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }" if (parenthesized_expression "(pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1)))" ( (binary_expression "pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))" identifier <= (binary_expression "pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))" (binary_expression "pcVar10 + iVar8" identifier + identifier) + (parenthesized_expression "(iVar12 - (int)(pcVar9 + 1))" ( (binary_expression "iVar12 - (int)(pcVar9 + 1)" identifier - (cast_expression "(int)(pcVar9 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar9 + 1)" ( (binary_expression "pcVar9 + 1" identifier + number_literal) )))) )))) )) (compound_statement "{\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }" { (labeled_statement "LAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;" statement_identifier : (if_statement "if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;" if (parenthesized_expression "((int)local_1a8 < (int)(local_1ac + 1))" ( (binary_expression "(int)local_1a8 < (int)(local_1ac + 1)" (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(local_1ac + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_1ac + 1)" ( (binary_expression "local_1ac + 1" identifier + number_literal) )))) )) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;))) (labeled_statement "LAB_0009eb65:\n    local_1ac = local_1ac + 1;" statement_identifier : (expression_statement "local_1ac = local_1ac + 1;" (assignment_expression "local_1ac = local_1ac + 1" identifier = (binary_expression "local_1ac + 1" identifier + number_literal)) ;)) (expression_statement "FUN_0009caa8();" (call_expression "FUN_0009caa8()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0009eafa;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid colon(char *buf)\n\n{\n  int b;\n  int e;\n  int t;\n  char cmd [128];\n  char args [128];\n  char buf_1 [128];\n  \n}\n\n" comment (function_definition "void colon(char *buf)\n\n{\n  int b;\n  int e;\n  int t;\n  char cmd [128];\n  char args [128];\n  char buf_1 [128];\n  \n}" primitive_type (function_declarator "colon(char *buf)" identifier (parameter_list "(char *buf)" ( (parameter_declaration "char *buf" primitive_type (pointer_declarator "*buf" * identifier)) ))) (compound_statement "{\n  int b;\n  int e;\n  int t;\n  char cmd [128];\n  char args [128];\n  char buf_1 [128];\n  \n}" { (declaration "int b;" primitive_type identifier ;) (declaration "int e;" primitive_type identifier ;) (declaration "int t;" primitive_type identifier ;) (declaration "char cmd [128];" primitive_type (array_declarator "cmd [128]" identifier [ number_literal ]) ;) (declaration "char args [128];" primitive_type (array_declarator "args [128]" identifier [ number_literal ]) ;) (declaration "char buf_1 [128];" primitive_type (array_declarator "buf_1 [128]" identifier [ number_literal ]) ;) })))
(translation_unit "void __regparm3 FUN_0009e093(char *param_1)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte bVar4;\n  byte *pbVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char cVar14;\n  undefined4 extraout_ECX;\n  size_t sVar15;\n  undefined1 *puVar16;\n  byte bVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  uint uVar21;\n  undefined1 *puVar22;\n  uint uVar23;\n  int in_GS_OFFSET;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  byte *local_1d4;\n  byte *local_1d0;\n  byte *local_1cc;\n  uint local_1c8;\n  byte *local_1c4;\n  byte *local_1bc;\n  uint local_1b4;\n  uint local_1ac;\n  uint local_1a8;\n  int local_1a4;\n  byte local_1a0 [128];\n  byte local_120 [128];\n  undefined1 local_a0 [128];\n  int local_20;\n  \n  piVar3 = DAT_000d1700;\n  bVar27 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cVar14 = *param_1;\n  if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_0009e302:\n  iVar8 = FUN_0009e04d();\n  piVar3[2] = iVar8;\nLAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }\n  return;\ncode_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();\n  if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }\n  goto LAB_0009eafa;\n}\n\n" (function_definition "void __regparm3 FUN_0009e093(char *param_1)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte bVar4;\n  byte *pbVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char cVar14;\n  undefined4 extraout_ECX;\n  size_t sVar15;\n  undefined1 *puVar16;\n  byte bVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  uint uVar21;\n  undefined1 *puVar22;\n  uint uVar23;\n  int in_GS_OFFSET;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  byte *local_1d4;\n  byte *local_1d0;\n  byte *local_1cc;\n  uint local_1c8;\n  byte *local_1c4;\n  byte *local_1bc;\n  uint local_1b4;\n  uint local_1ac;\n  uint local_1a8;\n  int local_1a4;\n  byte local_1a0 [128];\n  byte local_120 [128];\n  undefined1 local_a0 [128];\n  int local_20;\n  \n  piVar3 = DAT_000d1700;\n  bVar27 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cVar14 = *param_1;\n  if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_0009e302:\n  iVar8 = FUN_0009e04d();\n  piVar3[2] = iVar8;\nLAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }\n  return;\ncode_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();\n  if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }\n  goto LAB_0009eafa;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0009e093(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte bVar4;\n  byte *pbVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char cVar14;\n  undefined4 extraout_ECX;\n  size_t sVar15;\n  undefined1 *puVar16;\n  byte bVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  uint uVar21;\n  undefined1 *puVar22;\n  uint uVar23;\n  int in_GS_OFFSET;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  byte *local_1d4;\n  byte *local_1d0;\n  byte *local_1cc;\n  uint local_1c8;\n  byte *local_1c4;\n  byte *local_1bc;\n  uint local_1b4;\n  uint local_1ac;\n  uint local_1a8;\n  int local_1a4;\n  byte local_1a0 [128];\n  byte local_120 [128];\n  undefined1 local_a0 [128];\n  int local_20;\n  \n  piVar3 = DAT_000d1700;\n  bVar27 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cVar14 = *param_1;\n  if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_0009e302:\n  iVar8 = FUN_0009e04d();\n  piVar3[2] = iVar8;\nLAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }\n  return;\ncode_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();\n  if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }\n  goto LAB_0009eafa;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar24;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "byte *local_1d4;" type_identifier (pointer_declarator "*local_1d4" * identifier) ;) (declaration "byte *local_1d0;" type_identifier (pointer_declarator "*local_1d0" * identifier) ;) (declaration "byte *local_1cc;" type_identifier (pointer_declarator "*local_1cc" * identifier) ;) (declaration "uint local_1c8;" type_identifier identifier ;) (declaration "byte *local_1c4;" type_identifier (pointer_declarator "*local_1c4" * identifier) ;) (declaration "byte *local_1bc;" type_identifier (pointer_declarator "*local_1bc" * identifier) ;) (declaration "uint local_1b4;" type_identifier identifier ;) (declaration "uint local_1ac;" type_identifier identifier ;) (declaration "uint local_1a8;" type_identifier identifier ;) (declaration "int local_1a4;" primitive_type identifier ;) (declaration "byte local_1a0 [128];" type_identifier (array_declarator "local_1a0 [128]" identifier [ number_literal ]) ;) (declaration "byte local_120 [128];" type_identifier (array_declarator "local_120 [128]" identifier [ number_literal ]) ;) (declaration "undefined1 local_a0 [128];" type_identifier (array_declarator "local_a0 [128]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "piVar3 = DAT_000d1700;" (assignment_expression "piVar3 = DAT_000d1700" identifier = identifier) ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "cVar14 = *param_1;" (assignment_expression "cVar14 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(cVar14 != '\0')" ( (binary_expression "cVar14 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (if_statement "if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }" if (parenthesized_expression "(cVar14 == ':')" ( (binary_expression "cVar14 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }" { (expression_statement "cVar14 = param_1[1];" (assignment_expression "cVar14 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) })) (expression_statement "local_1a8 = 0xffffffff;" (assignment_expression "local_1a8 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_1ac = 0xffffffff;" (assignment_expression "local_1ac = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_1d0 = (byte *)*DAT_000d1700;" (assignment_expression "local_1d0 = (byte *)*DAT_000d1700" identifier = (cast_expression "(byte *)*DAT_000d1700" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000d1700" * identifier))) ;) (expression_statement "local_1cc = (byte *)(DAT_000d1700[1] + -1);" (assignment_expression "local_1cc = (byte *)(DAT_000d1700[1] + -1)" identifier = (cast_expression "(byte *)(DAT_000d1700[1] + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000d1700[1] + -1)" ( (binary_expression "DAT_000d1700[1] + -1" (subscript_expression "DAT_000d1700[1]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "FUN_0009caff();" (call_expression "FUN_0009caff()" identifier (argument_list "()" ( ))) ;) (while_statement "while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }" while (parenthesized_expression "((cVar14 == ' ' || (cVar14 == '\t')))" ( (parenthesized_expression "(cVar14 == ' ' || (cVar14 == '\t'))" ( (binary_expression "cVar14 == ' ' || (cVar14 == '\t')" (binary_expression "cVar14 == ' '" identifier == (char_literal "' '" ' character ')) || (parenthesized_expression "(cVar14 == '\t')" ( (binary_expression "cVar14 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) ))) )) )) (compound_statement "{\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }" { (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "cVar14 = *param_1;" (assignment_expression "cVar14 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) })) (expression_statement "local_1c4 = (byte *)piVar3[0x11];" (assignment_expression "local_1c4 = (byte *)piVar3[0x11]" identifier = (cast_expression "(byte *)piVar3[0x11]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x11]" identifier [ number_literal ]))) ;) (if_statement "if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }" if (parenthesized_expression "(cVar14 == '%')" ( (binary_expression "cVar14 == '%'" identifier == (char_literal "'%'" ' character ')) )) (compound_statement "{\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }" { (expression_statement "pbVar5 = (byte *)(param_1 + 1);" (assignment_expression "pbVar5 = (byte *)(param_1 + 1)" identifier = (cast_expression "(byte *)(param_1 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) ;) (expression_statement "local_1ac = 1;" (assignment_expression "local_1ac = 1" identifier = number_literal) ;) (expression_statement "local_1a8 = FUN_0009caff();" (assignment_expression "local_1a8 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (labeled_statement "LAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }" statement_identifier : (for_statement "for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }" for ( ; (parenthesized_expression "(bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9))" ( (comma_expression "bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)" (assignment_expression "bVar4 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) , (binary_expression "bVar4 == 0x20 || (bVar4 == 9)" (binary_expression "bVar4 == 0x20" identifier == number_literal) || (parenthesized_expression "(bVar4 == 9)" ( (binary_expression "bVar4 == 9" identifier == number_literal) )))) )) ; (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ) (compound_statement "{\n      }" { }))) (if_statement "if (bVar4 == 0) goto LAB_0009e154;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009e154;" goto statement_identifier ;)) (expression_statement "bVar17 = bVar4 - 9;" (assignment_expression "bVar17 = bVar4 - 9" identifier = (binary_expression "bVar4 - 9" identifier - number_literal)) ;) (expression_statement "local_1bc = pbVar5;" (assignment_expression "local_1bc = pbVar5" identifier = identifier) ;) (labeled_statement "LAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" statement_identifier : (if_statement "if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" if (parenthesized_expression "(bVar17 < 5)" ( (binary_expression "bVar17 < 5" identifier < number_literal) )) (compound_statement "{\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }" { (labeled_statement "LAB_0009f07d:\n        pbVar20 = local_1a0;" statement_identifier : (expression_statement "pbVar20 = local_1a0;" (assignment_expression "pbVar20 = local_1a0" identifier = identifier) ;)) (expression_statement "pbVar5 = local_1bc;" (assignment_expression "pbVar5 = local_1bc" identifier = identifier) ;) }) (else_clause "else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" else (compound_statement "{\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" { (expression_statement "pbVar19 = local_1a0;" (assignment_expression "pbVar19 = local_1a0" identifier = identifier) ;) (expression_statement "pbVar5 = local_1bc;" (assignment_expression "pbVar5 = local_1bc" identifier = identifier) ;) (do_statement "do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));" do (compound_statement "{\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar20 = pbVar19 + 1;" (assignment_expression "pbVar20 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar19 = bVar4;" (assignment_expression "*pbVar19 = bVar4" (pointer_expression "*pbVar19" * identifier) = identifier) ;) (expression_statement "bVar4 = *pbVar5;" (assignment_expression "bVar4 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (if_statement "if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;" if (parenthesized_expression "((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17))" ( (binary_expression "(bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)" (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "((byte)(bVar4 - 9) == 0x17)" ( (binary_expression "(byte)(bVar4 - 9) == 0x17" (call_expression "(byte)(bVar4 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 9)" ( (binary_expression "bVar4 - 9" identifier - number_literal) ))) == number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" identifier = identifier) ;) }) while (parenthesized_expression "(4 < (byte)(bVar4 - 9))" ( (binary_expression "4 < (byte)(bVar4 - 9)" number_literal < (call_expression "(byte)(bVar4 - 9)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar4 - 9)" ( (binary_expression "bVar4 - 9" identifier - number_literal) )))) )) ;) })))) }) (else_clause "else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }" else (compound_statement "{\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }" { (for_statement "for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }" for ( (assignment_expression "pbVar5 = (byte *)FUN_0009d46a()" identifier = (cast_expression "(byte *)FUN_0009d46a()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009d46a()" identifier (argument_list "()" ( ))))) ; (parenthesized_expression "(bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9))" ( (comma_expression "bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)" (assignment_expression "bVar4 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) , (binary_expression "bVar4 == 0x20 || (bVar4 == 9)" (binary_expression "bVar4 == 0x20" identifier == number_literal) || (parenthesized_expression "(bVar4 == 9)" ( (binary_expression "bVar4 == 9" identifier == number_literal) )))) )) ; (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ) (compound_statement "{\n      }" { })) (if_statement "if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }" if (parenthesized_expression "(bVar4 == 0x2c)" ( (binary_expression "bVar4 == 0x2c" identifier == number_literal) )) (compound_statement "{\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }" { (do_statement "do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);" do (compound_statement "{\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        }" { (do_statement "do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);" do (compound_statement "{\n            pbVar5 = pbVar5 + 1;\n          }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pbVar5 == 0x20)" ( (binary_expression "*pbVar5 == 0x20" (pointer_expression "*pbVar5" * identifier) == number_literal) )) ;) }) while (parenthesized_expression "(*pbVar5 == 9)" ( (binary_expression "*pbVar5 == 9" (pointer_expression "*pbVar5" * identifier) == number_literal) )) ;) (expression_statement "pbVar5 = (byte *)FUN_0009d46a();" (assignment_expression "pbVar5 = (byte *)FUN_0009d46a()" identifier = (cast_expression "(byte *)FUN_0009d46a()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009d46a()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto LAB_0009f0a0;" goto statement_identifier ;) })) (if_statement "if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }" { (expression_statement "bVar17 = bVar4 - 9;" (assignment_expression "bVar17 = bVar4 - 9" identifier = (binary_expression "bVar4 - 9" identifier - number_literal)) ;) (expression_statement "local_1bc = pbVar5;" (assignment_expression "local_1bc = pbVar5" identifier = identifier) ;) (if_statement "if (bVar17 != 0x17) goto LAB_0009f0b9;" if (parenthesized_expression "(bVar17 != 0x17)" ( (binary_expression "bVar17 != 0x17" identifier != number_literal) )) (goto_statement "goto LAB_0009f0b9;" goto statement_identifier ;)) (goto_statement "goto LAB_0009f07d;" goto statement_identifier ;) })) (labeled_statement "LAB_0009e154:\n      pbVar20 = local_1a0;" statement_identifier : (expression_statement "pbVar20 = local_1a0;" (assignment_expression "pbVar20 = local_1a0" identifier = identifier) ;)) (expression_statement "local_1bc = pbVar5;" (assignment_expression "local_1bc = pbVar5" identifier = identifier) ;) }))) (expression_statement "local_1d4 = local_1a0;" (assignment_expression "local_1d4 = local_1a0" identifier = identifier) ;) (expression_statement "*pbVar20 = 0;" (assignment_expression "*pbVar20 = 0" (pointer_expression "*pbVar20" * identifier) = number_literal) ;) (for_statement "for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }" for ( ; (parenthesized_expression "(*pbVar5 == 0x20 || (*pbVar5 == 9))" ( (binary_expression "*pbVar5 == 0x20 || (*pbVar5 == 9)" (binary_expression "*pbVar5 == 0x20" (pointer_expression "*pbVar5" * identifier) == number_literal) || (parenthesized_expression "(*pbVar5 == 9)" ( (binary_expression "*pbVar5 == 9" (pointer_expression "*pbVar5" * identifier) == number_literal) ))) )) ; (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ) (compound_statement "{\n    }" { })) (expression_statement "__strcpy_chk(local_120,pbVar5,0x80);" (call_expression "__strcpy_chk(local_120,pbVar5,0x80)" identifier (argument_list "(local_120,pbVar5,0x80)" ( identifier , identifier , number_literal ))) ;) (expression_statement "puVar6 = (undefined1 *)FUN_00018cc2();" (assignment_expression "puVar6 = (undefined1 *)FUN_00018cc2()" identifier = (cast_expression "(undefined1 *)FUN_00018cc2()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018cc2()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar25 = puVar6 != (undefined1 *)0x0;" (assignment_expression "bVar25 = puVar6 != (undefined1 *)0x0" identifier = (binary_expression "puVar6 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar25) {\n      *puVar6 = 0;\n    }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n      *puVar6 = 0;\n    }" { (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) })) (expression_statement "local_1c8 = local_1ac;" (assignment_expression "local_1c8 = local_1ac" identifier = identifier) ;) (if_statement "if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" if (parenthesized_expression "(-1 < (int)local_1ac)" ( (binary_expression "-1 < (int)local_1ac" number_literal < (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" { (expression_statement "local_1d0 = (byte *)*piVar3;" (assignment_expression "local_1d0 = (byte *)*piVar3" identifier = (cast_expression "(byte *)*piVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (expression_statement "uVar21 = local_1ac;" (assignment_expression "uVar21 = local_1ac" identifier = identifier) ;) (if_statement "if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" if (parenthesized_expression "(1 < (int)local_1ac)" ( (binary_expression "1 < (int)local_1ac" number_literal < (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" { (do_statement "do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);" do (compound_statement "{\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        }" { (expression_statement "local_1d0 = (byte *)FUN_0009caa8();" (assignment_expression "local_1d0 = (byte *)FUN_0009caa8()" identifier = (cast_expression "(byte *)FUN_0009caa8()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009caa8()" identifier (argument_list "()" ( ))))) ;) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar21 != 1)" ( (binary_expression "uVar21 != 1" identifier != number_literal) )) ;) })) (expression_statement "local_1cc = (byte *)FUN_0009ca70();" (assignment_expression "local_1cc = (byte *)FUN_0009ca70()" identifier = (cast_expression "(byte *)FUN_0009ca70()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))))) ;) })) (if_statement "if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" if (parenthesized_expression "(-1 < (int)local_1a8)" ( (binary_expression "-1 < (int)local_1a8" number_literal < (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" { (expression_statement "uVar21 = local_1a8;" (assignment_expression "uVar21 = local_1a8" identifier = identifier) ;) (if_statement "if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" if (parenthesized_expression "(1 < (int)local_1a8)" ( (binary_expression "1 < (int)local_1a8" number_literal < (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" { (do_statement "do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);" do (compound_statement "{\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        }" { (expression_statement "FUN_0009caa8();" (call_expression "FUN_0009caa8()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" identifier = (binary_expression "uVar21 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar21 != 1)" ( (binary_expression "uVar21 != 1" identifier != number_literal) )) ;) })) (expression_statement "local_1cc = (byte *)FUN_0009ca70();" (assignment_expression "local_1cc = (byte *)FUN_0009ca70()" identifier = (cast_expression "(byte *)FUN_0009ca70()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "sVar7 = strlen((char *)local_1d4);" (assignment_expression "sVar7 = strlen((char *)local_1d4)" identifier = (call_expression "strlen((char *)local_1d4)" identifier (argument_list "((char *)local_1d4)" ( (cast_expression "(char *)local_1d4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(sVar7 == 0)" ( (binary_expression "sVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }" { (if_statement "if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }" if (parenthesized_expression "(-1 < (int)local_1ac)" ( (binary_expression "-1 < (int)local_1ac" number_literal < (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }" { (expression_statement "iVar8 = *piVar3;" (assignment_expression "iVar8 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }" if (parenthesized_expression "(1 < (int)local_1ac)" ( (binary_expression "1 < (int)local_1ac" number_literal < (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }" { (do_statement "do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);" do (compound_statement "{\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          }" { (expression_statement "iVar8 = FUN_0009caa8();" (assignment_expression "iVar8 = FUN_0009caa8()" identifier = (call_expression "FUN_0009caa8()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_1ac = local_1ac - 1;" (assignment_expression "local_1ac = local_1ac - 1" identifier = (binary_expression "local_1ac - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(local_1ac != 1)" ( (binary_expression "local_1ac != 1" identifier != number_literal) )) ;) })) (expression_statement "piVar3[2] = iVar8;" (assignment_expression "piVar3[2] = iVar8" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0009be15();" (call_expression "FUN_0009be15()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" else (if_statement "if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(local_1a0[0] == 0x21)" ( (binary_expression "local_1a0[0] == 0x21" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }" { (expression_statement "FUN_0009d5bb();" (call_expression "FUN_0009d5bb()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = system((char *)(local_1bc + 1));" (assignment_expression "iVar8 = system((char *)(local_1bc + 1))" identifier = (call_expression "system((char *)(local_1bc + 1))" identifier (argument_list "((char *)(local_1bc + 1))" ( (cast_expression "(char *)(local_1bc + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1bc + 1)" ( (binary_expression "local_1bc + 1" identifier + number_literal) ))) )))) ;) (if_statement "if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }" { (expression_statement "__printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);" (call_expression "__printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX)" identifier (argument_list "(1,"\nshell returned %i\n\n",iVar8,extraout_ECX)" ( number_literal , (string_literal ""\nshell returned %i\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier ))) ;) })) (expression_statement "FUN_00019903();" (call_expression "FUN_00019903()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);" (assignment_expression "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f)" (pointer_expression "*(undefined1 *)(piVar3 + 0x17)" * (cast_expression "(undefined1 *)(piVar3 + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x17)" ( (binary_expression "piVar3 + 0x17" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)piVar3 + 0x21f)" * (cast_expression "(undefined1 *)((int)piVar3 + 0x21f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x21f)" ( (binary_expression "(int)piVar3 + 0x21f" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (labeled_statement "LAB_0009e2b4:\n      FUN_0009d8b5();" statement_identifier : (expression_statement "FUN_0009d8b5();" (call_expression "FUN_0009d8b5()" identifier (argument_list "()" ( ))) ;)) }) (else_clause "else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" else (if_statement "if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "((local_1a0[0] == 0x3d) && (local_1a0[1] == 0))" ( (binary_expression "(local_1a0[0] == 0x3d) && (local_1a0[1] == 0)" (parenthesized_expression "(local_1a0[0] == 0x3d)" ( (binary_expression "local_1a0[0] == 0x3d" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(local_1a0[1] == 0)" ( (binary_expression "local_1a0[1] == 0" (subscript_expression "local_1a0[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }" { (if_statement "if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        local_1c8 = FUN_0009caff();\n      }" { (expression_statement "local_1c8 = FUN_0009caff();" (assignment_expression "local_1c8 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "FUN_0009c4a0("%d",local_1c8);" (call_expression "FUN_0009c4a0("%d",local_1c8)" identifier (argument_list "("%d",local_1c8)" ( (string_literal ""%d"" " string_content ") , identifier ))) ;) }) (else_clause "else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" else (compound_statement "{\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }" if (parenthesized_expression "(7 < (int)sVar7)" ( (binary_expression "7 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        sVar15 = 7;\n      }" { (expression_statement "sVar15 = 7;" (assignment_expression "sVar15 = 7" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)"delete";" (assignment_expression "pbVar19 = (byte *)"delete"" identifier = (cast_expression "(byte *)"delete"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""delete"" " string_content "))) ;) (do_statement "do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);" do (compound_statement "{\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }" { (if_statement "if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }" { (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0009ca70();" (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar8 = FUN_0009dbfd(1);" (assignment_expression "iVar8 = FUN_0009dbfd(1)" identifier = (call_expression "FUN_0009dbfd(1)" identifier (argument_list "(1)" ( number_literal )))) ;) (expression_statement "piVar3[2] = iVar8;" (assignment_expression "piVar3[2] = iVar8" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0009be15();" (call_expression "FUN_0009be15()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }" else (compound_statement "{\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          sVar15 = 5;\n        }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xcd0e4;" (assignment_expression "pbVar19 = (byte *)0xcd0e4" identifier = (cast_expression "(byte *)0xcd0e4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);" do (compound_statement "{\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }" { (if_statement "if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }" if (parenthesized_expression "((piVar3[5] == 0) || (bVar25))" ( (binary_expression "(piVar3[5] == 0) || (bVar25)" (parenthesized_expression "(piVar3[5] == 0)" ( (binary_expression "piVar3[5] == 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(bVar25)" ( identifier ))) )) (compound_statement "{\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }" { (if_statement "if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }" if (parenthesized_expression "((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0'))))" ( (binary_expression "(local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))" (parenthesized_expression "(local_120[0] == 0)" ( (binary_expression "local_120[0] == 0" (subscript_expression "local_120[0]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))" ( (parenthesized_expression "((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0'))" ( (binary_expression "(char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')" (binary_expression "(char *)piVar3[0x11] == (char *)0x0" (cast_expression "(char *)piVar3[0x11]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x11]" identifier [ number_literal ])) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(*(char *)piVar3[0x11] == '\0')" ( (binary_expression "*(char *)piVar3[0x11] == '\0'" (pointer_expression "*(char *)piVar3[0x11]" * (cast_expression "(char *)piVar3[0x11]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x11]" identifier [ number_literal ]))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n              FUN_0009c4e0("No current filename");\n            }" { (expression_statement "FUN_0009c4e0("No current filename");" (call_expression "FUN_0009c4e0("No current filename")" identifier (argument_list "("No current filename")" ( (string_literal ""No current filename"" " string_content ") ))) ;) }) (else_clause "else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }" else (compound_statement "{\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }" { (expression_statement "iVar8 = FUN_0009df80();" (assignment_expression "iVar8 = FUN_0009df80()" identifier = (call_expression "FUN_0009df80()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }" if (parenthesized_expression "((uint)piVar3[0x21] < 0x1c)" ( (binary_expression "(uint)piVar3[0x21] < 0x1c" (cast_expression "(uint)piVar3[0x21]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x21]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }" { (expression_statement "free((void *)piVar3[piVar3[0x21] + 0x22]);" (call_expression "free((void *)piVar3[piVar3[0x21] + 0x22])" identifier (argument_list "((void *)piVar3[piVar3[0x21] + 0x22])" ( (cast_expression "(void *)piVar3[piVar3[0x21] + 0x22]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[piVar3[0x21] + 0x22]" identifier [ (binary_expression "piVar3[0x21] + 0x22" (subscript_expression "piVar3[0x21]" identifier [ number_literal ]) + number_literal) ])) ))) ;) (expression_statement "piVar3[piVar3[0x21] + 0x22] = 0;" (assignment_expression "piVar3[piVar3[0x21] + 0x22] = 0" (subscript_expression "piVar3[piVar3[0x21] + 0x22]" identifier [ (binary_expression "piVar3[0x21] + 0x22" (subscript_expression "piVar3[0x21]" identifier [ number_literal ]) + number_literal) ]) = number_literal) ;) })) (if_statement "if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }" if (parenthesized_expression "((uint)piVar3[0x20] < 0x1c)" ( (binary_expression "(uint)piVar3[0x20] < 0x1c" (cast_expression "(uint)piVar3[0x20]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x20]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }" { (expression_statement "free((void *)piVar3[piVar3[0x20] + 0x22]);" (call_expression "free((void *)piVar3[piVar3[0x20] + 0x22])" identifier (argument_list "((void *)piVar3[piVar3[0x20] + 0x22])" ( (cast_expression "(void *)piVar3[piVar3[0x20] + 0x22]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[piVar3[0x20] + 0x22]" identifier [ (binary_expression "piVar3[0x20] + 0x22" (subscript_expression "piVar3[0x20]" identifier [ number_literal ]) + number_literal) ])) ))) ;) (expression_statement "piVar3[piVar3[0x20] + 0x22] = 0;" (assignment_expression "piVar3[piVar3[0x20] + 0x22] = 0" (subscript_expression "piVar3[piVar3[0x20] + 0x22]" identifier [ (binary_expression "piVar3[0x20] + 0x22" (subscript_expression "piVar3[0x20]" identifier [ number_literal ]) + number_literal) ]) = number_literal) ;) })) (expression_statement "iVar12 = piVar3[1];" (assignment_expression "iVar12 = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "iVar1 = *piVar3;" (assignment_expression "iVar1 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar9 = " [Readonly]";" (assignment_expression "pcVar9 = " [Readonly]"" identifier = (string_literal "" [Readonly]"" " string_content ")) ;) (if_statement "if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }" if (parenthesized_expression "(*(char *)((int)piVar3 + 0x11) == '\0')" ( (binary_expression "*(char *)((int)piVar3 + 0x11) == '\0'" (pointer_expression "*(char *)((int)piVar3 + 0x11)" * (cast_expression "(char *)((int)piVar3 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x11)" ( (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcVar9 = "";\n              }" { (expression_statement "pcVar9 = "";" (assignment_expression "pcVar9 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "pcVar10 = " [New file]";" (assignment_expression "pcVar10 = " [New file]"" identifier = (string_literal "" [New file]"" " string_content ")) ;) (if_statement "if (-1 < iVar8) {\n                pcVar10 = "";\n              }" if (parenthesized_expression "(-1 < iVar8)" ( (binary_expression "-1 < iVar8" number_literal < identifier) )) (compound_statement "{\n                pcVar10 = "";\n              }" { (expression_statement "pcVar10 = "";" (assignment_expression "pcVar10 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);" (call_expression "FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1)" identifier (argument_list "("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1)" ( (string_literal ""\'%s\'%s%s %dL, %dC"" " escape_sequence string_content escape_sequence string_content ") , (subscript_expression "piVar3[0x11]" identifier [ number_literal ]) , identifier , identifier , identifier , (binary_expression "iVar12 - iVar1" identifier - identifier) ))) ;) }))) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) (labeled_statement "LAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);" statement_identifier : (expression_statement "FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);" (call_expression "FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4)" identifier (argument_list "("No write since last change (:%s! overrides)",local_1d4)" ( (string_literal ""No write since last change (:%s! overrides)"" " string_content ") , identifier ))) ;)) }) (else_clause "else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }" else (compound_statement "{\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            sVar15 = 5;\n          }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xcaef1;" (assignment_expression "pbVar19 = (byte *)0xcaef1" identifier = (cast_expression "(byte *)0xcaef1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);" do (compound_statement "{\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }" { (if_statement "if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }" if (parenthesized_expression "((local_1ac & local_1a8) == 0xffffffff)" ( (binary_expression "(local_1ac & local_1a8) == 0xffffffff" (parenthesized_expression "(local_1ac & local_1a8)" ( (binary_expression "local_1ac & local_1a8" identifier & identifier) )) == number_literal) )) (compound_statement "{\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }" { (if_statement "if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }" if (parenthesized_expression "(local_120[0] == 0)" ( (binary_expression "local_120[0] == 0" (subscript_expression "local_120[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                piVar3[0x10] = 0;\n              }" { (expression_statement "piVar3[0x10] = 0;" (assignment_expression "piVar3[0x10] = 0" (subscript_expression "piVar3[0x10]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }" else (compound_statement "{\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }" { (expression_statement "free((void *)piVar3[0x11]);" (call_expression "free((void *)piVar3[0x11])" identifier (argument_list "((void *)piVar3[0x11])" ( (cast_expression "(void *)piVar3[0x11]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[0x11]" identifier [ number_literal ])) ))) ;) (expression_statement "iVar8 = FUN_00019ba3();" (assignment_expression "iVar8 = FUN_00019ba3()" identifier = (call_expression "FUN_00019ba3()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar3[0x11] = iVar8;" (assignment_expression "piVar3[0x11] = iVar8" (subscript_expression "piVar3[0x11]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n              FUN_0009c4e0("No address allowed on this command");\n            }" else (compound_statement "{\n              FUN_0009c4e0("No address allowed on this command");\n            }" { (expression_statement "FUN_0009c4e0("No address allowed on this command");" (call_expression "FUN_0009c4e0("No address allowed on this command")" identifier (argument_list "("No address allowed on this command")" ( (string_literal ""No address allowed on this command"" " string_content ") ))) ;) }))) }) (else_clause "else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }" else (compound_statement "{\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }" if (parenthesized_expression "(9 < (int)sVar7)" ( (binary_expression "9 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              sVar15 = 9;\n            }" { (expression_statement "sVar15 = 9;" (assignment_expression "sVar15 = 9" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)"features";" (assignment_expression "pbVar19 = (byte *)"features"" identifier = (cast_expression "(byte *)"features"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""features"" " string_content "))) ;) (do_statement "do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);" do (compound_statement "{\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }" { (expression_statement "FUN_0009d5bb();" (call_expression "FUN_0009d5bb()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" identifier (argument_list "()" ( ))) ;) (expression_statement "puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );" (call_expression "puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  )" identifier (argument_list "(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  )" ( (string_literal ""These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"" " string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content ") ))) ;) (expression_statement "FUN_00019903();" (call_expression "FUN_00019903()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);" (assignment_expression "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f)" (pointer_expression "*(undefined1 *)(piVar3 + 0x17)" * (cast_expression "(undefined1 *)(piVar3 + 0x17)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x17)" ( (binary_expression "piVar3 + 0x17" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)piVar3 + 0x21f)" * (cast_expression "(undefined1 *)((int)piVar3 + 0x21f)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x21f)" ( (binary_expression "(int)piVar3 + 0x21f" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "FUN_0009d8b5();" (call_expression "FUN_0009d8b5()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }" else (compound_statement "{\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                sVar15 = 5;\n              }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xbda40;" (assignment_expression "pbVar19 = (byte *)0xbda40" identifier = (cast_expression "(byte *)0xbda40" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);" do (compound_statement "{\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }" { (if_statement "if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }" { (expression_statement "local_1d0 = (byte *)FUN_0009cbb6();" (assignment_expression "local_1d0 = (byte *)FUN_0009cbb6()" identifier = (cast_expression "(byte *)FUN_0009cbb6()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_1cc = (byte *)FUN_0009ca70();" (assignment_expression "local_1cc = (byte *)FUN_0009ca70()" identifier = (cast_expression "(byte *)FUN_0009ca70()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))))) ;) })) (expression_statement "FUN_0009d5bb();" (call_expression "FUN_0009d5bb()" identifier (argument_list "()" ( ))) ;) (expression_statement "puts("\r");" (call_expression "puts("\r")" identifier (argument_list "("\r")" ( (string_literal ""\r"" " escape_sequence ") ))) ;) (expression_statement "puVar2 = PTR_stdout_000d0fb4;" (assignment_expression "puVar2 = PTR_stdout_000d0fb4" identifier = identifier) ;) (if_statement "if (local_1cc < local_1d0) goto LAB_0009e2b4;" if (parenthesized_expression "(local_1cc < local_1d0)" ( (binary_expression "local_1cc < local_1d0" identifier < identifier) )) (goto_statement "goto LAB_0009e2b4;" goto statement_identifier ;)) (do_statement "do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);" do (compound_statement "{\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                }" { (expression_statement "bVar27 = *local_1d0;" (assignment_expression "bVar27 = *local_1d0" identifier = (pointer_expression "*local_1d0" * identifier)) ;) (if_statement "if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" if (parenthesized_expression "((char)bVar27 < '\0')" ( (binary_expression "(char)bVar27 < '\0'" (cast_expression "(char)bVar27" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }" { (if_statement "if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }" if (parenthesized_expression "(bVar27 == 0x9b)" ( (binary_expression "bVar27 == 0x9b" identifier == number_literal) )) (compound_statement "{\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }" { (expression_statement "fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);" (call_expression "fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2)" identifier (argument_list "(&DAT_000cd025,1,4,*(FILE **)puVar2)" ( (pointer_expression "&DAT_000cd025" & identifier) , number_literal , number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) (expression_statement "fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);" (call_expression "fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2)" identifier (argument_list "(&DAT_000c470b,1,3,*(FILE **)puVar2)" ( (pointer_expression "&DAT_000c470b" & identifier) , number_literal , number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) }) (else_clause "else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }" else (compound_statement "{\nLAB_0009e548:\n                      FUN_00019f93();\n                    }" { (labeled_statement "LAB_0009e548:\n                      FUN_00019f93();" statement_identifier : (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;)) }))) }) (else_clause "else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" else (if_statement "if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" if (parenthesized_expression "(bVar27 == 10)" ( (binary_expression "bVar27 == 10" identifier == number_literal) )) (compound_statement "{\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }" { (expression_statement "fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);" (call_expression "fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2)" identifier (argument_list "(&DAT_000cd0bf,1,2,*(FILE **)puVar2)" ( (pointer_expression "&DAT_000cd0bf" & identifier) , number_literal , number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" else (if_statement "if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" if (parenthesized_expression "(bVar27 < 0x20)" ( (binary_expression "bVar27 < 0x20" identifier < number_literal) )) (compound_statement "{\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" { (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" else (compound_statement "{\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" { (if_statement "if (bVar27 != 0x7f) goto LAB_0009e548;" if (parenthesized_expression "(bVar27 != 0x7f)" ( (binary_expression "bVar27 != 0x7f" identifier != number_literal) )) (goto_statement "goto LAB_0009e548;" goto statement_identifier ;)) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" identifier (argument_list "()" ( ))) ;) }))))))) (expression_statement "local_1d0 = local_1d0 + 1;" (assignment_expression "local_1d0 = local_1d0 + 1" identifier = (binary_expression "local_1d0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_1d0 != local_1cc + 1)" ( (binary_expression "local_1d0 != local_1cc + 1" identifier != (binary_expression "local_1cc + 1" identifier + number_literal)) )) ;) (expression_statement "FUN_0009d8b5();" (call_expression "FUN_0009d8b5()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }" else (compound_statement "{\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  sVar15 = 5;\n                }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_000cd0c2;" (assignment_expression "pbVar19 = &DAT_000cd0c2" identifier = (pointer_expression "&DAT_000cd0c2" & identifier)) ;) (do_statement "do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);" do (compound_statement "{\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }" { (labeled_statement "LAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" statement_identifier : (if_statement "if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }" { (if_statement "if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }" if (parenthesized_expression "(local_1a0[0] == 0x71)" ( (binary_expression "local_1a0[0] == 0x71" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }" { (expression_statement "*(int *)PTR_optind_000d0f94 = piVar3[7];" (assignment_expression "*(int *)PTR_optind_000d0f94 = piVar3[7]" (pointer_expression "*(int *)PTR_optind_000d0f94" * (cast_expression "(int *)PTR_optind_000d0f94" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "piVar3[7]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" else (compound_statement "{\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" { (if_statement "if (piVar3[5] != 0) goto LAB_0009e3d0;" if (parenthesized_expression "(piVar3[5] != 0)" ( (binary_expression "piVar3[5] != 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0009e3d0;" goto statement_identifier ;)) (expression_statement "uVar21 = *(uint *)PTR_optind_000d0f94;" (assignment_expression "uVar21 = *(uint *)PTR_optind_000d0f94" identifier = (pointer_expression "*(uint *)PTR_optind_000d0f94" * (cast_expression "(uint *)PTR_optind_000d0f94" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar8 = ~uVar21 + piVar3[7];" (assignment_expression "iVar8 = ~uVar21 + piVar3[7]" identifier = (binary_expression "~uVar21 + piVar3[7]" (unary_expression "~uVar21" ~ identifier) + (subscript_expression "piVar3[7]" identifier [ number_literal ]))) ;) (if_statement "if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" if (parenthesized_expression "(local_1a0[0] == 0x71)" ( (binary_expression "local_1a0[0] == 0x71" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }" { (if_statement "if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }" if (parenthesized_expression "(0 < iVar8)" ( (binary_expression "0 < iVar8" number_literal < identifier) )) (compound_statement "{\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }" { (expression_statement "FUN_0009c4e0("%d more file(s) to edit",iVar8);" (call_expression "FUN_0009c4e0("%d more file(s) to edit",iVar8)" identifier (argument_list "("%d more file(s) to edit",iVar8)" ( (string_literal ""%d more file(s) to edit"" " string_content ") , identifier ))) ;) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) }) (else_clause "else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" else (if_statement "if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" if (parenthesized_expression "(local_1a0[0] == 0x6e)" ( (binary_expression "local_1a0[0] == 0x6e" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }" { (if_statement "if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }" if (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) (compound_statement "{\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }" { (expression_statement "FUN_0009c4e0("No more files to edit");" (call_expression "FUN_0009c4e0("No more files to edit")" identifier (argument_list "("No more files to edit")" ( (string_literal ""No more files to edit"" " string_content ") ))) ;) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) }) (else_clause "else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" else (if_statement "if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" if (parenthesized_expression "(local_1a0[0] == 0x70)" ( (binary_expression "local_1a0[0] == 0x70" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" { (if_statement "if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }" if (parenthesized_expression "((int)uVar21 < 1)" ( (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }" { (expression_statement "FUN_0009c4e0("No previous files to edit");" (call_expression "FUN_0009c4e0("No previous files to edit")" identifier (argument_list "("No previous files to edit")" ( (string_literal ""No previous files to edit"" " string_content ") ))) ;) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) (expression_statement "*(uint *)PTR_optind_000d0f94 = uVar21 - 2;" (assignment_expression "*(uint *)PTR_optind_000d0f94 = uVar21 - 2" (pointer_expression "*(uint *)PTR_optind_000d0f94" * (cast_expression "(uint *)PTR_optind_000d0f94" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "uVar21 - 2" identifier - number_literal)) ;) })))))) })))) }) (else_clause "else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }" else (compound_statement "{\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    sVar15 = 5;\n                  }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_000cd0c7;" (assignment_expression "pbVar19 = &DAT_000cd0c7" identifier = (pointer_expression "&DAT_000cd0c7" & identifier)) ;) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" do (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0009e591;" goto statement_identifier ;)) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    sVar15 = 5;\n                  }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_000cd0cc;" (assignment_expression "pbVar19 = &DAT_000cd0cc" identifier = (pointer_expression "&DAT_000cd0cc" & identifier)) ;) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" do (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_0009e591;" goto statement_identifier ;)) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    sVar15 = 5;\n                  }" { (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xc4379;" (assignment_expression "pbVar19 = (byte *)0xc4379" identifier = (cast_expression "(byte *)0xc4379" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" do (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" { (if_statement "if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }" if (parenthesized_expression "(local_120[0] == 0)" ( (binary_expression "local_120[0] == 0" (subscript_expression "local_120[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }" { (expression_statement "FUN_0009c4e0("No filename given");" (call_expression "FUN_0009c4e0("No filename given")" identifier (argument_list "("No filename given")" ( (string_literal ""No filename given"" " string_content ") ))) ;) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) (if_statement "if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }" { (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();" statement_identifier : (expression_statement "local_1d0 = (byte *)FUN_0009caa8();" (assignment_expression "local_1d0 = (byte *)FUN_0009caa8()" identifier = (cast_expression "(byte *)FUN_0009caa8()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009caa8()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }" if (parenthesized_expression "(local_1d0 == (byte *)piVar3[1] + -1)" ( (binary_expression "local_1d0 == (byte *)piVar3[1] + -1" identifier == (binary_expression "(byte *)piVar3[1] + -1" (cast_expression "(byte *)piVar3[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[1]" identifier [ number_literal ])) + number_literal)) )) (compound_statement "{\n                        local_1d0 = (byte *)piVar3[1];\n                      }" { (expression_statement "local_1d0 = (byte *)piVar3[1];" (assignment_expression "local_1d0 = (byte *)piVar3[1]" identifier = (cast_expression "(byte *)piVar3[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[1]" identifier [ number_literal ]))) ;) })) }) (else_clause "else if (local_1ac != 0) goto LAB_0009ed56;" else (if_statement "if (local_1ac != 0) goto LAB_0009ed56;" if (parenthesized_expression "(local_1ac != 0)" ( (binary_expression "local_1ac != 0" identifier != number_literal) )) (goto_statement "goto LAB_0009ed56;" goto statement_identifier ;)))) (expression_statement "iVar8 = *piVar3;" (assignment_expression "iVar8 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "iVar12 = FUN_0009c54d();" (assignment_expression "iVar12 = FUN_0009c54d()" identifier = (call_expression "FUN_0009c54d()" identifier (argument_list "()" ( )))) ;) (if_statement "if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }" if (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) )) (compound_statement "{\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }" { (expression_statement "iVar1 = *piVar3;" (assignment_expression "iVar1 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar9 = " [Readonly]";" (assignment_expression "pcVar9 = " [Readonly]"" identifier = (string_literal "" [Readonly]"" " string_content ")) ;) (if_statement "if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }" if (parenthesized_expression "(*(char *)((int)piVar3 + 0x11) == '\0')" ( (binary_expression "*(char *)((int)piVar3 + 0x11) == '\0'" (pointer_expression "*(char *)((int)piVar3 + 0x11)" * (cast_expression "(char *)((int)piVar3 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x11)" ( (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                        pcVar9 = "";\n                      }" { (expression_statement "pcVar9 = "";" (assignment_expression "pcVar9 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);" (call_expression "FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12)" identifier (argument_list "("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12)" ( (string_literal ""\'%s\'%s %dL, %dC"" " escape_sequence string_content escape_sequence string_content ") , identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }" if (parenthesized_expression "((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2]))" ( (binary_expression "(iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])" (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])" ( (binary_expression "local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2]" (binary_expression "local_1d0 + (iVar1 - iVar8)" identifier + (parenthesized_expression "(iVar1 - iVar8)" ( (binary_expression "iVar1 - iVar8" identifier - identifier) ))) <= (cast_expression "(byte *)piVar3[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }" { (expression_statement "piVar3[2] = (int)((byte *)piVar3[2] + iVar12);" (assignment_expression "piVar3[2] = (int)((byte *)piVar3[2] + iVar12)" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (cast_expression "(int)((byte *)piVar3[2] + iVar12)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((byte *)piVar3[2] + iVar12)" ( (binary_expression "(byte *)piVar3[2] + iVar12" (cast_expression "(byte *)piVar3[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[2]" identifier [ number_literal ])) + identifier) )))) ;) })) })) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }" if (parenthesized_expression "(7 < (int)sVar7)" ( (binary_expression "7 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                    sVar15 = 7;\n                  }" { (expression_statement "sVar15 = 7;" (assignment_expression "sVar15 = 7" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)"rewind";" (assignment_expression "pbVar19 = (byte *)"rewind"" identifier = (cast_expression "(byte *)"rewind"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""rewind"" " string_content "))) ;) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" do (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" if (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" ( (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier) )) (compound_statement "{\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }" if (parenthesized_expression "(4 < (int)sVar7)" ( (binary_expression "4 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                      sVar15 = 4;\n                    }" { (expression_statement "sVar15 = 4;" (assignment_expression "sVar15 = 4" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xc47f6;" (assignment_expression "pbVar19 = (byte *)0xc47f6" identifier = (cast_expression "(byte *)0xc47f6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);" do (compound_statement "{\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }" { (if_statement "if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }" if (parenthesized_expression "(local_120[0] != 0)" ( (binary_expression "local_120[0] != 0" (subscript_expression "local_120[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }" { (expression_statement "iVar8 = strcasecmp((char *)local_120,"all");" (assignment_expression "iVar8 = strcasecmp((char *)local_120,"all")" identifier = (call_expression "strcasecmp((char *)local_120,"all")" identifier (argument_list "((char *)local_120,"all")" ( (cast_expression "(char *)local_120" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""all"" " string_content ") )))) ;) (expression_statement "bVar25 = iVar8 == 0;" (assignment_expression "bVar25 = iVar8 == 0" identifier = (binary_expression "iVar8 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (compound_statement "{\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }" { (expression_statement "local_1b4 = 0;" (assignment_expression "local_1b4 = 0" identifier = number_literal) ;) (expression_statement "local_1d4 = local_120;" (assignment_expression "local_1d4 = local_120" identifier = identifier) ;) (do_statement "do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);" do (compound_statement "{\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          }" { (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" identifier = number_literal) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_000c4601;" (assignment_expression "pbVar19 = &DAT_000c4601" identifier = (pointer_expression "&DAT_000c4601" & identifier)) ;) (do_statement "do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);" do (compound_statement "{\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar25 = *pbVar5 == *pbVar19;" (assignment_expression "bVar25 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }" if (parenthesized_expression "((!bVar24 && !bVar25) == bVar24)" ( (binary_expression "(!bVar24 && !bVar25) == bVar24" (parenthesized_expression "(!bVar24 && !bVar25)" ( (binary_expression "!bVar24 && !bVar25" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) == identifier) )) (compound_statement "{\n                              local_1b4 = 2;\n                            }" { (expression_statement "local_1b4 = 2;" (assignment_expression "local_1b4 = 2" identifier = number_literal) ;) })) (expression_statement "FUN_0009c95a(&DAT_000cd14e,1);" (call_expression "FUN_0009c95a(&DAT_000cd14e,1)" identifier (argument_list "(&DAT_000cd14e,1)" ( (pointer_expression "&DAT_000cd14e" & identifier) , number_literal ))) ;) (expression_statement "FUN_0009c95a(&DAT_000cd158,8);" (call_expression "FUN_0009c95a(&DAT_000cd158,8)" identifier (argument_list "(&DAT_000cd158,8)" ( (pointer_expression "&DAT_000cd158" & identifier) , number_literal ))) ;) (expression_statement "FUN_0009c95a("ic",4);" (call_expression "FUN_0009c95a("ic",4)" identifier (argument_list "("ic",4)" ( (string_literal ""ic"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0009c95a(&DAT_000cd172,2);" (call_expression "FUN_0009c95a(&DAT_000cd172,2)" identifier (argument_list "(&DAT_000cd172,2)" ( (pointer_expression "&DAT_000cd172" & identifier) , number_literal ))) ;) (expression_statement "bVar25 = CARRY4(local_1b4,(uint)local_1d4);" (assignment_expression "bVar25 = CARRY4(local_1b4,(uint)local_1d4)" identifier = (call_expression "CARRY4(local_1b4,(uint)local_1d4)" identifier (argument_list "(local_1b4,(uint)local_1d4)" ( identifier , (cast_expression "(uint)local_1d4" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "bVar24 = local_1d4 + local_1b4 == (byte *)0x0;" (assignment_expression "bVar24 = local_1d4 + local_1b4 == (byte *)0x0" identifier = (binary_expression "local_1d4 + local_1b4 == (byte *)0x0" (binary_expression "local_1d4 + local_1b4" identifier + identifier) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "pbVar5 = local_1d4 + local_1b4;" (assignment_expression "pbVar5 = local_1d4 + local_1b4" identifier = (binary_expression "local_1d4 + local_1b4" identifier + identifier)) ;) (expression_statement "pbVar19 = (byte *)"tabstop=";" (assignment_expression "pbVar19 = (byte *)"tabstop="" identifier = (cast_expression "(byte *)"tabstop="" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""tabstop="" " string_content "))) ;) (do_statement "do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);" do (compound_statement "{\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            }" { (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" identifier = identifier) ;) (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar25 = *pbVar5 < *pbVar19;" (assignment_expression "bVar25 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar24 = *pbVar5 == *pbVar19;" (assignment_expression "bVar24 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" identifier = identifier) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }" if (parenthesized_expression "((!bVar25 && !bVar24) == bVar25)" ( (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }" { (expression_statement "local_1a4 = 0;" (assignment_expression "local_1a4 = 0" identifier = number_literal) ;) (expression_statement "sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);" (call_expression "sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20)" identifier (argument_list "((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20)" ( (cast_expression "(char *)(local_1d4 + local_1b4 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1d4 + local_1b4 + 8)" ( (binary_expression "local_1d4 + local_1b4 + 8" (binary_expression "local_1d4 + local_1b4" identifier + identifier) + number_literal) ))) , (string_literal ""%u"" " string_content ") , (pointer_expression "&local_1a4" & identifier) , identifier ))) ;) (if_statement "if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }" if (parenthesized_expression "(local_1a4 - 1U < 0x20)" ( (binary_expression "local_1a4 - 1U < 0x20" (binary_expression "local_1a4 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n                                piVar3[0x15] = local_1a4;\n                              }" { (expression_statement "piVar3[0x15] = local_1a4;" (assignment_expression "piVar3[0x15] = local_1a4" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) = identifier) ;) })) })) (expression_statement "FUN_00018f04();" (call_expression "FUN_00018f04()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1d4 = (byte *)FUN_00018ef1();" (assignment_expression "local_1d4 = (byte *)FUN_00018ef1()" identifier = (cast_expression "(byte *)FUN_00018ef1()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018ef1()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar25 = *local_1d4 == 0;" (assignment_expression "bVar25 = *local_1d4 == 0" identifier = (binary_expression "*local_1d4 == 0" (pointer_expression "*local_1d4" * identifier) == number_literal)) ;) }) while (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) ;) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) })) (expression_statement "bVar27 = *(byte *)(piVar3 + 4);" (assignment_expression "bVar27 = *(byte *)(piVar3 + 4)" identifier = (pointer_expression "*(byte *)(piVar3 + 4)" * (cast_expression "(byte *)(piVar3 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 4)" ( (binary_expression "piVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar6 = &DAT_000cd91f;" (assignment_expression "puVar6 = &DAT_000cd91f" identifier = (pointer_expression "&DAT_000cd91f" & identifier)) ;) (if_statement "if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }" if (parenthesized_expression "((bVar27 & 2) == 0)" ( (binary_expression "(bVar27 & 2) == 0" (parenthesized_expression "(bVar27 & 2)" ( (binary_expression "bVar27 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        puVar6 = &DAT_000c4601;\n                      }" { (expression_statement "puVar6 = &DAT_000c4601;" (assignment_expression "puVar6 = &DAT_000c4601" identifier = (pointer_expression "&DAT_000c4601" & identifier)) ;) })) (expression_statement "puVar22 = &DAT_000cd91f;" (assignment_expression "puVar22 = &DAT_000cd91f" identifier = (pointer_expression "&DAT_000cd91f" & identifier)) ;) (if_statement "if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }" if (parenthesized_expression "((bVar27 & 4) == 0)" ( (binary_expression "(bVar27 & 4) == 0" (parenthesized_expression "(bVar27 & 4)" ( (binary_expression "bVar27 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        puVar22 = &DAT_000c4601;\n                      }" { (expression_statement "puVar22 = &DAT_000c4601;" (assignment_expression "puVar22 = &DAT_000c4601" identifier = (pointer_expression "&DAT_000c4601" & identifier)) ;) })) (expression_statement "puVar16 = &DAT_000cd91f;" (assignment_expression "puVar16 = &DAT_000cd91f" identifier = (pointer_expression "&DAT_000cd91f" & identifier)) ;) (if_statement "if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }" if (parenthesized_expression "((bVar27 & 8) == 0)" ( (binary_expression "(bVar27 & 8) == 0" (parenthesized_expression "(bVar27 & 8)" ( (binary_expression "bVar27 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        puVar16 = &DAT_000c4601;\n                      }" { (expression_statement "puVar16 = &DAT_000c4601;" (assignment_expression "puVar16 = &DAT_000c4601" identifier = (pointer_expression "&DAT_000c4601" & identifier)) ;) })) (expression_statement "puVar18 = &DAT_000cd91f;" (assignment_expression "puVar18 = &DAT_000cd91f" identifier = (pointer_expression "&DAT_000cd91f" & identifier)) ;) (if_statement "if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }" if (parenthesized_expression "((bVar27 & 1) == 0)" ( (binary_expression "(bVar27 & 1) == 0" (parenthesized_expression "(bVar27 & 1)" ( (binary_expression "bVar27 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                        puVar18 = &DAT_000c4601;\n                      }" { (expression_statement "puVar18 = &DAT_000c4601;" (assignment_expression "puVar18 = &DAT_000c4601" identifier = (pointer_expression "&DAT_000c4601" & identifier)) ;) })) (expression_statement "FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);" (call_expression "FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15])" identifier (argument_list "("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15])" ( (string_literal ""%sautoindent %sflash %signorecase %sshowmatch tabstop=%u"" " string_content ") , identifier , identifier , identifier , identifier , (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) ))) ;) }) (else_clause "else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }" else (compound_statement "{\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }" { (if_statement "if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }" if (parenthesized_expression "(local_1a0[0] == 0x73)" ( (binary_expression "local_1a0[0] == 0x73" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }" { (expression_statement "bVar27 = local_1bc[1];" (assignment_expression "bVar27 = local_1bc[1]" identifier = (subscript_expression "local_1bc[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);" (assignment_expression "pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27)" identifier = (call_expression "strchr((char *)(local_1bc + 2),(uint)bVar27)" identifier (argument_list "((char *)(local_1bc + 2),(uint)bVar27)" ( (cast_expression "(char *)(local_1bc + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1bc + 2)" ( (binary_expression "local_1bc + 2" identifier + number_literal) ))) , (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }" if (parenthesized_expression "(pcVar9 != (char *)0x0)" ( (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }" { (expression_statement "*pcVar9 = '\0';" (assignment_expression "*pcVar9 = '\0'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);" (assignment_expression "pcVar10 = strchr(pcVar9 + 1,(uint)bVar27)" identifier = (call_expression "strchr(pcVar9 + 1,(uint)bVar27)" identifier (argument_list "(pcVar9 + 1,(uint)bVar27)" ( (binary_expression "pcVar9 + 1" identifier + number_literal) , (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }" { (expression_statement "*pcVar10 = '\0';" (assignment_expression "*pcVar10 = '\0'" (pointer_expression "*pcVar10" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar14 = pcVar10[1];" (assignment_expression "cVar14 = pcVar10[1]" identifier = (subscript_expression "pcVar10[1]" identifier [ number_literal ])) ;) (if_statement "if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }" { (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_1ac = FUN_0009caff();" (assignment_expression "local_1ac = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                              FUN_0009cbb6();\n                            }" else (compound_statement "{\n                              FUN_0009cbb6();\n                            }" { (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar21 = local_1ac;" (assignment_expression "uVar21 = local_1ac" identifier = identifier) ;) (if_statement "if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }" if (parenthesized_expression "(((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8))" ( (binary_expression "((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)" (parenthesized_expression "((int)local_1a8 < 0)" ( (binary_expression "(int)local_1a8 < 0" (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)" ( (comma_expression "uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8" (assignment_expression "uVar21 = local_1a8" identifier = identifier) , (binary_expression "(int)local_1ac <= (int)local_1a8" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }" { (labeled_statement "LAB_0009eafa:\n                              local_1a8 = uVar21;" statement_identifier : (expression_statement "local_1a8 = uVar21;" (assignment_expression "local_1a8 = uVar21" identifier = identifier) ;)) (expression_statement "iVar8 = FUN_0009d344();" (assignment_expression "iVar8 = FUN_0009d344()" identifier = (call_expression "FUN_0009d344()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar21 = local_1a8;" (assignment_expression "uVar21 = local_1a8" identifier = identifier) ;) (if_statement "if (iVar8 == 0) goto LAB_0009eb5a;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0009eb5a;" goto statement_identifier ;)) (expression_statement "FUN_0009c26a();" (call_expression "FUN_0009c26a()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar12 = FUN_0009c75e();" (assignment_expression "iVar12 = FUN_0009c75e()" identifier = (call_expression "FUN_0009c75e()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar14 == 'g') goto code_r0x0009eb3b;" if (parenthesized_expression "(cVar14 == 'g')" ( (binary_expression "cVar14 == 'g'" identifier == (char_literal "'g'" ' character ')) )) (goto_statement "goto code_r0x0009eb3b;" goto statement_identifier ;)) (if_statement "if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;" if (parenthesized_expression "((int)(local_1ac + 1) <= (int)local_1a8)" ( (binary_expression "(int)(local_1ac + 1) <= (int)local_1a8" (cast_expression "(int)(local_1ac + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_1ac + 1)" ( (binary_expression "local_1ac + 1" identifier + number_literal) ))) <= (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0009eb65;" goto statement_identifier ;)) })) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) })) (expression_statement "FUN_0009c4a0(":s expression missing delimiters");" (call_expression "FUN_0009c4a0(":s expression missing delimiters")" identifier (argument_list "(":s expression missing delimiters")" ( (string_literal "":s expression missing delimiters"" " string_content ") ))) ;) (goto_statement "goto LAB_0009e30a;" goto statement_identifier ;) })) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }" if (parenthesized_expression "(8 < (int)sVar7)" ( (binary_expression "8 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                        sVar15 = 8;\n                      }" { (expression_statement "sVar15 = 8;" (assignment_expression "sVar15 = 8" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xcabbd;" (assignment_expression "pbVar19 = (byte *)0xcabbd" identifier = (cast_expression "(byte *)0xcabbd" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);" do (compound_statement "{\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }" if (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" ( (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n                        FUN_0009c4a0("1.30.1");\n                      }" { (expression_statement "FUN_0009c4a0("1.30.1");" (call_expression "FUN_0009c4a0("1.30.1")" identifier (argument_list "("1.30.1")" ( (string_literal ""1.30.1"" " string_content ") ))) ;) }) (else_clause "else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }" else (compound_statement "{\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }" if (parenthesized_expression "(6 < (int)sVar7)" ( (binary_expression "6 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          sVar15 = 6;\n                        }" { (expression_statement "sVar15 = 6;" (assignment_expression "sVar15 = 6" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xc4644;" (assignment_expression "pbVar19 = (byte *)0xc4644" identifier = (cast_expression "(byte *)0xc4644" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);" do (compound_statement "{\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }" if (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" ( (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier) )) (compound_statement "{\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }" if (parenthesized_expression "(3 < (int)sVar7)" ( (binary_expression "3 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                            sVar15 = 3;\n                          }" { (expression_statement "sVar15 = 3;" (assignment_expression "sVar15 = 3" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = &DAT_000c86f9;" (assignment_expression "pbVar19 = &DAT_000c86f9" identifier = (pointer_expression "&DAT_000c86f9" & identifier)) ;) (do_statement "do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);" do (compound_statement "{\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }" if (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" ( (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier) )) (compound_statement "{\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }" { (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" identifier = identifier) ;) (if_statement "if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }" if (parenthesized_expression "(3 < (int)sVar7)" ( (binary_expression "3 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                              sVar15 = 3;\n                            }" { (expression_statement "sVar15 = 3;" (assignment_expression "sVar15 = 3" identifier = number_literal) ;) })) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" identifier = false) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" identifier = identifier) ;) (expression_statement "pbVar19 = (byte *)0xc52d8;" (assignment_expression "pbVar19 = (byte *)0xc52d8" identifier = (cast_expression "(byte *)0xc52d8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);" do (compound_statement "{\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            }" { (if_statement "if (sVar15 == 0) break;" if (parenthesized_expression "(sVar15 == 0)" ( (binary_expression "sVar15 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" identifier = (binary_expression "sVar15 - 1" identifier - number_literal)) ;) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" identifier = (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" identifier = (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar19" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }" if (parenthesized_expression "(((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0))))" ( (binary_expression "((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))" (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" ( (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" ( (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) != identifier) )) && (parenthesized_expression "((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))" ( (parenthesized_expression "(local_1a0[0] != 0x78 || (local_1a0[1] != 0))" ( (binary_expression "local_1a0[0] != 0x78 || (local_1a0[1] != 0)" (binary_expression "local_1a0[0] != 0x78" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(local_1a0[1] != 0)" ( (binary_expression "local_1a0[1] != 0" (subscript_expression "local_1a0[1]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }" { (if_statement "if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }" if (parenthesized_expression "(5 < (int)sVar7)" ( (binary_expression "5 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                                sVar7 = 5;\n                              }" { (expression_statement "sVar7 = 5;" (assignment_expression "sVar7 = 5" identifier = number_literal) ;) })) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" identifier = true) ;) (expression_statement "pbVar5 = &DAT_000cd19e;" (assignment_expression "pbVar5 = &DAT_000cd19e" identifier = (pointer_expression "&DAT_000cd19e" & identifier)) ;) (do_statement "do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);" do (compound_statement "{\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              }" { (if_statement "if (sVar7 == 0) break;" if (parenthesized_expression "(sVar7 == 0)" ( (binary_expression "sVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "sVar7 = sVar7 - 1;" (assignment_expression "sVar7 = sVar7 - 1" identifier = (binary_expression "sVar7 - 1" identifier - number_literal)) ;) (expression_statement "bVar25 = *local_1d4 < *pbVar5;" (assignment_expression "bVar25 = *local_1d4 < *pbVar5" identifier = (binary_expression "*local_1d4 < *pbVar5" (pointer_expression "*local_1d4" * identifier) < (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "bVar24 = *local_1d4 == *pbVar5;" (assignment_expression "bVar24 = *local_1d4 == *pbVar5" identifier = (binary_expression "*local_1d4 == *pbVar5" (pointer_expression "*local_1d4" * identifier) == (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;" (assignment_expression "local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "local_1d4 + (uint)bVar27 * -2 + 1" (binary_expression "local_1d4 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar24)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }" if (parenthesized_expression "((!bVar25 && !bVar24) == bVar25)" ( (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" ( (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar24" ! identifier)) )) == identifier) )) (compound_statement "{\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }" { (if_statement "if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }" if (parenthesized_expression "((int)local_1ac < 0)" ( (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }" { (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0009ca70();" (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0009be4f();" (call_expression "FUN_0009be4f()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar21 = piVar3[0x20];" (assignment_expression "uVar21 = piVar3[0x20]" identifier = (subscript_expression "piVar3[0x20]" identifier [ number_literal ])) ;) (if_statement "if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }" if (parenthesized_expression "(uVar21 < 0x1a)" ( (binary_expression "uVar21 < 0x1a" identifier < number_literal) )) (compound_statement "{\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }" { (expression_statement "uVar23 = uVar21 + 0x61 & 0xff;" (assignment_expression "uVar23 = uVar21 + 0x61 & 0xff" identifier = (binary_expression "uVar21 + 0x61 & 0xff" (binary_expression "uVar21 + 0x61" identifier + number_literal) & number_literal)) ;) }) (else_clause "else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }" else (compound_statement "{\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }" { (expression_statement "uVar23 = 0x44;" (assignment_expression "uVar23 = 0x44" identifier = number_literal) ;) (if_statement "if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }" if (parenthesized_expression "((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b))" ( (binary_expression "(uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)" (parenthesized_expression "(uVar21 != 0x1a)" ( (binary_expression "uVar21 != 0x1a" identifier != number_literal) )) && (parenthesized_expression "(uVar23 = 0x55, uVar21 != 0x1b)" ( (comma_expression "uVar23 = 0x55, uVar21 != 0x1b" (assignment_expression "uVar23 = 0x55" identifier = number_literal) , (binary_expression "uVar21 != 0x1b" identifier != number_literal)) ))) )) (compound_statement "{\n                                    uVar23 = 0x44;\n                                  }" { (expression_statement "uVar23 = 0x44;" (assignment_expression "uVar23 = 0x44" identifier = number_literal) ;) })) }))) (expression_statement "sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);" (assignment_expression "sVar7 = strlen((char *)piVar3[uVar21 + 0x22])" identifier = (call_expression "strlen((char *)piVar3[uVar21 + 0x22])" identifier (argument_list "((char *)piVar3[uVar21 + 0x22])" ( (cast_expression "(char *)piVar3[uVar21 + 0x22]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[uVar21 + 0x22]" identifier [ (binary_expression "uVar21 + 0x22" identifier + number_literal) ])) )))) ;) (expression_statement "FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);" (call_expression "FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23)" identifier (argument_list "("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23)" ( (string_literal ""Yank %d lines (%d chars) into [%c]"" " string_content ") , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }" else (compound_statement "{\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }" { (expression_statement "FUN_0009c3ff();" (call_expression "FUN_0009c3ff()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0009c4e0("\'%s\' is not implemented",local_a0);" (call_expression "FUN_0009c4e0("\'%s\' is not implemented",local_a0)" identifier (argument_list "("\'%s\' is not implemented",local_a0)" ( (string_literal ""\'%s\' is not implemented"" " escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) }))) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) })) })) (if_statement "if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }" if (parenthesized_expression "(local_120[0] != 0)" ( (binary_expression "local_120[0] != 0" (subscript_expression "local_120[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                          local_1c4 = local_120;\n                        }" { (expression_statement "local_1c4 = local_120;" (assignment_expression "local_1c4 = local_120" identifier = identifier) ;) })) (if_statement "if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }" if (parenthesized_expression "((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25))" ( (binary_expression "(*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)" (parenthesized_expression "(*(char *)((int)piVar3 + 0x11) == '\0')" ( (binary_expression "*(char *)((int)piVar3 + 0x11) == '\0'" (pointer_expression "*(char *)((int)piVar3 + 0x11)" * (cast_expression "(char *)((int)piVar3 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x11)" ( (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar25)" ( identifier ))) )) (compound_statement "{\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }" { (if_statement "if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }" if (parenthesized_expression "((piVar3[5] == 0) && (local_1a0[0] == 0x78))" ( (binary_expression "(piVar3[5] == 0) && (local_1a0[0] == 0x78)" (parenthesized_expression "(piVar3[5] == 0)" ( (binary_expression "piVar3[5] == 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(local_1a0[0] == 0x78)" ( (binary_expression "local_1a0[0] == 0x78" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }" { (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);" (call_expression "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0)" identifier (argument_list "("\'%s\' %dL, %dC",local_1c4,uVar13,0)" ( (string_literal ""\'%s\' %dL, %dC"" " escape_sequence string_content escape_sequence string_content ") , identifier , identifier , number_literal ))) ;) (expression_statement "pbVar5 = (byte *)0x0;" (assignment_expression "pbVar5 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }" statement_identifier : (if_statement "if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }" if (parenthesized_expression "(((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5))" ( (binary_expression "((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)" (parenthesized_expression "((byte *)*piVar3 == local_1d0)" ( (binary_expression "(byte *)*piVar3 == local_1d0" (cast_expression "(byte *)*piVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier)) == identifier) )) && (parenthesized_expression "((byte *)piVar3[1] == local_1d0 + (int)pbVar5)" ( (binary_expression "(byte *)piVar3[1] == local_1d0 + (int)pbVar5" (cast_expression "(byte *)piVar3[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar3[1]" identifier [ number_literal ])) == (binary_expression "local_1d0 + (int)pbVar5" identifier + (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }" { (expression_statement "piVar3[5] = 0;" (assignment_expression "piVar3[5] = 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar3[6] = -1;" (assignment_expression "piVar3[6] = -1" (subscript_expression "piVar3[6]" identifier [ number_literal ]) = number_literal) ;) }))) (if_statement "if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" if (parenthesized_expression "((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51))" ( (binary_expression "(local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)" (parenthesized_expression "(local_1a0[0] == 0x78)" ( (binary_expression "local_1a0[0] == 0x78" (subscript_expression "local_1a0[0]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((local_1a0[1] & 0xdf) == 0x51)" ( (binary_expression "(local_1a0[1] & 0xdf) == 0x51" (parenthesized_expression "(local_1a0[1] & 0xdf)" ( (binary_expression "local_1a0[1] & 0xdf" (subscript_expression "local_1a0[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" { (expression_statement "*(undefined1 *)((int)piVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 0x12)" * (cast_expression "(undefined1 *)((int)piVar3 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x12)" ( (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" else (if_statement "if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" if (parenthesized_expression "((local_1a0[1] & 0xdf) == 0x4e)" ( (binary_expression "(local_1a0[1] & 0xdf) == 0x4e" (parenthesized_expression "(local_1a0[1] & 0xdf)" ( (binary_expression "local_1a0[1] & 0xdf" (subscript_expression "local_1a0[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" { (expression_statement "*(undefined1 *)((int)piVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 0x12)" * (cast_expression "(undefined1 *)((int)piVar3 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x12)" ( (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })))) }) (else_clause "else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }" else (compound_statement "{\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }" { (expression_statement "pbVar5 = (byte *)FUN_0009c9dc();" (assignment_expression "pbVar5 = (byte *)FUN_0009c9dc()" identifier = (cast_expression "(byte *)FUN_0009c9dc()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009c9dc()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }" if (parenthesized_expression "((int)pbVar5 < 0)" ( (binary_expression "(int)pbVar5 < 0" (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }" { (if_statement "if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }" if (parenthesized_expression "(pbVar5 == (byte *)0xffffffff)" ( (binary_expression "pbVar5 == (byte *)0xffffffff" identifier == (cast_expression "(byte *)0xffffffff" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }" { (expression_statement "FUN_0009c4e0("\'%s\' %m",local_1c4);" (call_expression "FUN_0009c4e0("\'%s\' %m",local_1c4)" identifier (argument_list "("\'%s\' %m",local_1c4)" ( (string_literal ""\'%s\' %m"" " escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) })) }) (else_clause "else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }" else (compound_statement "{\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }" { (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" identifier = (call_expression "FUN_0009caff()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);" (call_expression "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5)" identifier (argument_list "("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5)" ( (string_literal ""\'%s\' %dL, %dC"" " escape_sequence string_content escape_sequence string_content ") , identifier , identifier , identifier ))) ;) (if_statement "if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;" if (parenthesized_expression "(local_1cc + (1 - (int)local_1d0) == pbVar5)" ( (binary_expression "local_1cc + (1 - (int)local_1d0) == pbVar5" (binary_expression "local_1cc + (1 - (int)local_1d0)" identifier + (parenthesized_expression "(1 - (int)local_1d0)" ( (binary_expression "1 - (int)local_1d0" number_literal - (cast_expression "(int)local_1d0" ( (type_descriptor "int" primitive_type) ) identifier)) ))) == identifier) )) (goto_statement "goto LAB_0009ea0c;" goto statement_identifier ;)) }))) }))) }) (else_clause "else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }" else (compound_statement "{\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }" { (expression_statement "FUN_0009c4e0("\'%s\' is read only",local_1c4);" (call_expression "FUN_0009c4e0("\'%s\' is read only",local_1c4)" identifier (argument_list "("\'%s\' is read only",local_1c4)" ( (string_literal ""\'%s\' is read only"" " escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) }))) }))) }))) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;) })) (if_statement "if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;" if (parenthesized_expression "((piVar3[5] != 0) && (!bVar25))" ( (binary_expression "(piVar3[5] != 0) && (!bVar25)" (parenthesized_expression "(piVar3[5] != 0)" ( (binary_expression "piVar3[5] != 0" (subscript_expression "piVar3[5]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) ))) )) (goto_statement "goto LAB_0009e3d0;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;" (assignment_expression "*(undefined4 *)PTR_optind_000d0f94 = 0xffffffff" (pointer_expression "*(undefined4 *)PTR_optind_000d0f94" * (cast_expression "(undefined4 *)PTR_optind_000d0f94" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) }))) (expression_statement "*(undefined1 *)((int)piVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 0x12)" * (cast_expression "(undefined1 *)((int)piVar3 + 0x12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar3 + 0x12)" ( (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }))) }))) }))) }))) }))) }))))))) })) (labeled_statement "LAB_0009e302:\n  iVar8 = FUN_0009e04d();" statement_identifier : (expression_statement "iVar8 = FUN_0009e04d();" (assignment_expression "iVar8 = FUN_0009e04d()" identifier = (call_expression "FUN_0009e04d()" identifier (argument_list "()" ( )))) ;)) (expression_statement "piVar3[2] = iVar8;" (assignment_expression "piVar3[2] = iVar8" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_00017e10();\n  }" { (expression_statement "FUN_00017e10();" (call_expression "FUN_00017e10()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return;" return ;) (labeled_statement "code_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();" statement_identifier : (expression_statement "pcVar11 = (char *)FUN_0009ca70();" (assignment_expression "pcVar11 = (char *)FUN_0009ca70()" identifier = (cast_expression "(char *)FUN_0009ca70()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009ca70()" identifier (argument_list "()" ( ))))) ;)) (if_statement "if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }" if (parenthesized_expression "(pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1)))" ( (binary_expression "pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))" identifier <= (binary_expression "pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))" (binary_expression "pcVar10 + iVar8" identifier + identifier) + (parenthesized_expression "(iVar12 - (int)(pcVar9 + 1))" ( (binary_expression "iVar12 - (int)(pcVar9 + 1)" identifier - (cast_expression "(int)(pcVar9 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar9 + 1)" ( (binary_expression "pcVar9 + 1" identifier + number_literal) )))) )))) )) (compound_statement "{\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }" { (labeled_statement "LAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;" statement_identifier : (if_statement "if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;" if (parenthesized_expression "((int)local_1a8 < (int)(local_1ac + 1))" ( (binary_expression "(int)local_1a8 < (int)(local_1ac + 1)" (cast_expression "(int)local_1a8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(local_1ac + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_1ac + 1)" ( (binary_expression "local_1ac + 1" identifier + number_literal) )))) )) (goto_statement "goto LAB_0009e302;" goto statement_identifier ;))) (labeled_statement "LAB_0009eb65:\n    local_1ac = local_1ac + 1;" statement_identifier : (expression_statement "local_1ac = local_1ac + 1;" (assignment_expression "local_1ac = local_1ac + 1" identifier = (binary_expression "local_1ac + 1" identifier + number_literal)) ;)) (expression_statement "FUN_0009caa8();" (call_expression "FUN_0009caa8()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0009eafa;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_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 *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (char_literal ' character ')) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (labeled_statement statement_identifier : (for_statement for ( ; (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression IDENT == LIT) )))) )) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) == LIT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) ;) })))) }) (else_clause else (compound_statement { (for_statement for ( (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ; (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression IDENT == LIT) )))) )) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (for_statement for ( ; (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) == LIT) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence escape_sequence ") , IDENT , IDENT ))) ;) })) (expression_statement (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (parenthesized_expression ( IDENT ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) == (char_literal ' escape_sequence ')) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ])) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ])) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content ") , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , IDENT , (binary_expression IDENT - IDENT) ))) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (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 (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence escape_sequence string_content ") ))) ;) (expression_statement (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))))))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (subscript_expression IDENT [ LIT ])) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression IDENT - LIT)) ;) })))))) })))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content ") , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) + IDENT) )))) ;) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 = LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + 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 = IDENT) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))) , (string_literal " string_content ") , (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) })) (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == LIT)) ;) }) while (parenthesized_expression ( (unary_expression ! IDENT) )) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) })) (goto_statement goto statement_identifier ;) })) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content ") , IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( IDENT ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content ") , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == IDENT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) })))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content ") , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content ") , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) == IDENT) )) (goto_statement goto statement_identifier ;)) }))) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content ") , IDENT ))) ;) }))) }))) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) }))) }))) }))) }))) }))) }))))))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression (binary_expression IDENT + IDENT) + (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "void __regparm3 FUN_0009e093(char *param_1)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte bVar4;\n  byte *pbVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char cVar14;\n  undefined4 extraout_ECX;\n  size_t sVar15;\n  undefined1 *puVar16;\n  byte bVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  uint uVar21;\n  undefined1 *puVar22;\n  uint uVar23;\n  int in_GS_OFFSET;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  byte *local_1d4;\n  byte *local_1d0;\n  byte *local_1cc;\n  uint local_1c8;\n  byte *local_1c4;\n  byte *local_1bc;\n  uint local_1b4;\n  uint local_1ac;\n  uint local_1a8;\n  int local_1a4;\n  byte local_1a0 [128];\n  byte local_120 [128];\n  undefined1 local_a0 [128];\n  int local_20;\n  \n  piVar3 = DAT_000d1700;\n  bVar27 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cVar14 = *param_1;\n  if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_0009e302:\n  iVar8 = FUN_0009e04d();\n  piVar3[2] = iVar8;\nLAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }\n  return;\ncode_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();\n  if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }\n  goto LAB_0009eafa;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0009e093(char *param_1)" (identifier "FUN_0009e093") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  int *piVar3;\n  byte bVar4;\n  byte *pbVar5;\n  undefined1 *puVar6;\n  size_t sVar7;\n  int iVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  char cVar14;\n  undefined4 extraout_ECX;\n  size_t sVar15;\n  undefined1 *puVar16;\n  byte bVar17;\n  undefined1 *puVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  uint uVar21;\n  undefined1 *puVar22;\n  uint uVar23;\n  int in_GS_OFFSET;\n  bool bVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  byte *local_1d4;\n  byte *local_1d0;\n  byte *local_1cc;\n  uint local_1c8;\n  byte *local_1c4;\n  byte *local_1bc;\n  uint local_1b4;\n  uint local_1ac;\n  uint local_1a8;\n  int local_1a4;\n  byte local_1a0 [128];\n  byte local_120 [128];\n  undefined1 local_a0 [128];\n  int local_20;\n  \n  piVar3 = DAT_000d1700;\n  bVar27 = 0;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cVar14 = *param_1;\n  if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\nLAB_0009e302:\n  iVar8 = FUN_0009e04d();\n  piVar3[2] = iVar8;\nLAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }\n  return;\ncode_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();\n  if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }\n  goto LAB_0009eafa;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "undefined1 *puVar6;" (type_identifier "undefined1") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "char cVar14;" (primitive_type "char") (identifier "cVar14") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "size_t sVar15;" (primitive_type "size_t") (identifier "sVar15") (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "undefined1 *puVar18;" (type_identifier "undefined1") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "undefined1 *puVar22;" (type_identifier "undefined1") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar24;" (primitive_type "bool") (identifier "bVar24") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "byte bVar27;" (type_identifier "byte") (identifier "bVar27") (; ";")) (declaration "byte *local_1d4;" (type_identifier "byte") (pointer_declarator "*local_1d4" (* "*") (identifier "local_1d4")) (; ";")) (declaration "byte *local_1d0;" (type_identifier "byte") (pointer_declarator "*local_1d0" (* "*") (identifier "local_1d0")) (; ";")) (declaration "byte *local_1cc;" (type_identifier "byte") (pointer_declarator "*local_1cc" (* "*") (identifier "local_1cc")) (; ";")) (declaration "uint local_1c8;" (type_identifier "uint") (identifier "local_1c8") (; ";")) (declaration "byte *local_1c4;" (type_identifier "byte") (pointer_declarator "*local_1c4" (* "*") (identifier "local_1c4")) (; ";")) (declaration "byte *local_1bc;" (type_identifier "byte") (pointer_declarator "*local_1bc" (* "*") (identifier "local_1bc")) (; ";")) (declaration "uint local_1b4;" (type_identifier "uint") (identifier "local_1b4") (; ";")) (declaration "uint local_1ac;" (type_identifier "uint") (identifier "local_1ac") (; ";")) (declaration "uint local_1a8;" (type_identifier "uint") (identifier "local_1a8") (; ";")) (declaration "int local_1a4;" (primitive_type "int") (identifier "local_1a4") (; ";")) (declaration "byte local_1a0 [128];" (type_identifier "byte") (array_declarator "local_1a0 [128]" (identifier "local_1a0") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "byte local_120 [128];" (type_identifier "byte") (array_declarator "local_120 [128]" (identifier "local_120") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "undefined1 local_a0 [128];" (type_identifier "undefined1") (array_declarator "local_a0 [128]" (identifier "local_a0") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "piVar3 = DAT_000d1700;" (assignment_expression "piVar3 = DAT_000d1700" (identifier "piVar3") (= "=") (identifier "DAT_000d1700")) (; ";")) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" (identifier "bVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "cVar14 = *param_1;" (assignment_expression "cVar14 = *param_1" (identifier "cVar14") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (cVar14 != '\0') {\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(cVar14 != '\0')" (( "(") (binary_expression "cVar14 != '\0'" (identifier "cVar14") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }\n    local_1a8 = 0xffffffff;\n    local_1ac = 0xffffffff;\n    local_1d0 = (byte *)*DAT_000d1700;\n    local_1cc = (byte *)(DAT_000d1700[1] + -1);\n    FUN_0009caff();\n    while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }\n    local_1c4 = (byte *)piVar3[0x11];\n    if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }\n    local_1d4 = local_1a0;\n    *pbVar20 = 0;\n    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }\n    __strcpy_chk(local_120,pbVar5,0x80);\n    puVar6 = (undefined1 *)FUN_00018cc2();\n    bVar25 = puVar6 != (undefined1 *)0x0;\n    if (bVar25) {\n      *puVar6 = 0;\n    }\n    local_1c8 = local_1ac;\n    if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }\n    sVar7 = strlen((char *)local_1d4);\n    if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (if_statement "if (cVar14 == ':') {\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }" (if "if") (parenthesized_expression "(cVar14 == ':')" (( "(") (binary_expression "cVar14 == ':'" (identifier "cVar14") (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n      cVar14 = param_1[1];\n      param_1 = param_1 + 1;\n    }" ({ "{") (expression_statement "cVar14 = param_1[1];" (assignment_expression "cVar14 = param_1[1]" (identifier "cVar14") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_1a8 = 0xffffffff;" (assignment_expression "local_1a8 = 0xffffffff" (identifier "local_1a8") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_1ac = 0xffffffff;" (assignment_expression "local_1ac = 0xffffffff" (identifier "local_1ac") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_1d0 = (byte *)*DAT_000d1700;" (assignment_expression "local_1d0 = (byte *)*DAT_000d1700" (identifier "local_1d0") (= "=") (cast_expression "(byte *)*DAT_000d1700" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_000d1700" (* "*") (identifier "DAT_000d1700")))) (; ";")) (expression_statement "local_1cc = (byte *)(DAT_000d1700[1] + -1);" (assignment_expression "local_1cc = (byte *)(DAT_000d1700[1] + -1)" (identifier "local_1cc") (= "=") (cast_expression "(byte *)(DAT_000d1700[1] + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000d1700[1] + -1)" (( "(") (binary_expression "DAT_000d1700[1] + -1" (subscript_expression "DAT_000d1700[1]" (identifier "DAT_000d1700") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "FUN_0009caff();" (call_expression "FUN_0009caff()" (identifier "FUN_0009caff") (argument_list "()" (( "(") () ")"))) (; ";")) (while_statement "while ((cVar14 == ' ' || (cVar14 == '\t'))) {\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }" (while "while") (parenthesized_expression "((cVar14 == ' ' || (cVar14 == '\t')))" (( "(") (parenthesized_expression "(cVar14 == ' ' || (cVar14 == '\t'))" (( "(") (binary_expression "cVar14 == ' ' || (cVar14 == '\t')" (binary_expression "cVar14 == ' '" (identifier "cVar14") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) (|| "||") (parenthesized_expression "(cVar14 == '\t')" (( "(") (binary_expression "cVar14 == '\t'" (identifier "cVar14") (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")"))) () ")")) () ")")) (compound_statement "{\n      param_1 = param_1 + 1;\n      cVar14 = *param_1;\n    }" ({ "{") (expression_statement "param_1 = param_1 + 1;" (assignment_expression "param_1 = param_1 + 1" (identifier "param_1") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = *param_1;" (assignment_expression "cVar14 = *param_1" (identifier "cVar14") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (} "}"))) (expression_statement "local_1c4 = (byte *)piVar3[0x11];" (assignment_expression "local_1c4 = (byte *)piVar3[0x11]" (identifier "local_1c4") (= "=") (cast_expression "(byte *)piVar3[0x11]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x11]" (identifier "piVar3") ([ "[") (number_literal "0x11") (] "]")))) (; ";")) (if_statement "if (cVar14 == '%') {\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }\n    else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }" (if "if") (parenthesized_expression "(cVar14 == '%')" (( "(") (binary_expression "cVar14 == '%'" (identifier "cVar14") (== "==") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (compound_statement "{\n      pbVar5 = (byte *)(param_1 + 1);\n      local_1ac = 1;\n      local_1a8 = FUN_0009caff();\nLAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0) goto LAB_0009e154;\n      bVar17 = bVar4 - 9;\n      local_1bc = pbVar5;\nLAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }\n    }" ({ "{") (expression_statement "pbVar5 = (byte *)(param_1 + 1);" (assignment_expression "pbVar5 = (byte *)(param_1 + 1)" (identifier "pbVar5") (= "=") (cast_expression "(byte *)(param_1 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_1ac = 1;" (assignment_expression "local_1ac = 1" (identifier "local_1ac") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_1a8 = FUN_0009caff();" (assignment_expression "local_1a8 = FUN_0009caff()" (identifier "local_1a8") (= "=") (call_expression "FUN_0009caff()" (identifier "FUN_0009caff") (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_0009f0a0:\n      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }" (statement_identifier "LAB_0009f0a0") (: ":") (for_statement "for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {\n      }" (for "for") (( "(") (; ";") (parenthesized_expression "(bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9))" (( "(") (comma_expression "bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)" (assignment_expression "bVar4 = *pbVar5" (identifier "bVar4") (= "=") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5"))) (, ",") (binary_expression "bVar4 == 0x20 || (bVar4 == 9)" (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) (|| "||") (parenthesized_expression "(bVar4 == 9)" (( "(") (binary_expression "bVar4 == 9" (identifier "bVar4") (== "==") (number_literal "9")) () ")")))) () ")")) (; ";") (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n      }" ({ "{") (} "}")))) (if_statement "if (bVar4 == 0) goto LAB_0009e154;" (if "if") (parenthesized_expression "(bVar4 == 0)" (( "(") (binary_expression "bVar4 == 0" (identifier "bVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009e154;" (goto "goto") (statement_identifier "LAB_0009e154") (; ";"))) (expression_statement "bVar17 = bVar4 - 9;" (assignment_expression "bVar17 = bVar4 - 9" (identifier "bVar17") (= "=") (binary_expression "bVar4 - 9" (identifier "bVar4") (- "-") (number_literal "9"))) (; ";")) (expression_statement "local_1bc = pbVar5;" (assignment_expression "local_1bc = pbVar5" (identifier "local_1bc") (= "=") (identifier "pbVar5")) (; ";")) (labeled_statement "LAB_0009f0b9:\n      if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" (statement_identifier "LAB_0009f0b9") (: ":") (if_statement "if (bVar17 < 5) {\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }\n      else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" (if "if") (parenthesized_expression "(bVar17 < 5)" (( "(") (binary_expression "bVar17 < 5" (identifier "bVar17") (< "<") (number_literal "5")) () ")")) (compound_statement "{\nLAB_0009f07d:\n        pbVar20 = local_1a0;\n        pbVar5 = local_1bc;\n      }" ({ "{") (labeled_statement "LAB_0009f07d:\n        pbVar20 = local_1a0;" (statement_identifier "LAB_0009f07d") (: ":") (expression_statement "pbVar20 = local_1a0;" (assignment_expression "pbVar20 = local_1a0" (identifier "pbVar20") (= "=") (identifier "local_1a0")) (; ";"))) (expression_statement "pbVar5 = local_1bc;" (assignment_expression "pbVar5 = local_1bc" (identifier "pbVar5") (= "=") (identifier "local_1bc")) (; ";")) (} "}")) (else_clause "else {\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" (else "else") (compound_statement "{\n        pbVar19 = local_1a0;\n        pbVar5 = local_1bc;\n        do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));\n      }" ({ "{") (expression_statement "pbVar19 = local_1a0;" (assignment_expression "pbVar19 = local_1a0" (identifier "pbVar19") (= "=") (identifier "local_1a0")) (; ";")) (expression_statement "pbVar5 = local_1bc;" (assignment_expression "pbVar5 = local_1bc" (identifier "pbVar5") (= "=") (identifier "local_1bc")) (; ";")) (do_statement "do {\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        } while (4 < (byte)(bVar4 - 9));" (do "do") (compound_statement "{\n          pbVar5 = pbVar5 + 1;\n          pbVar20 = pbVar19 + 1;\n          *pbVar19 = bVar4;\n          bVar4 = *pbVar5;\n          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;\n          pbVar19 = pbVar20;\n        }" ({ "{") (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar19 + 1;" (assignment_expression "pbVar20 = pbVar19 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar19 = bVar4;" (assignment_expression "*pbVar19 = bVar4" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (= "=") (identifier "bVar4")) (; ";")) (expression_statement "bVar4 = *pbVar5;" (assignment_expression "bVar4 = *pbVar5" (identifier "bVar4") (= "=") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5"))) (; ";")) (if_statement "if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;" (if "if") (parenthesized_expression "((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17))" (( "(") (binary_expression "(bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)" (parenthesized_expression "(bVar4 == 0)" (( "(") (binary_expression "bVar4 == 0" (identifier "bVar4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((byte)(bVar4 - 9) == 0x17)" (( "(") (binary_expression "(byte)(bVar4 - 9) == 0x17" (call_expression "(byte)(bVar4 - 9)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar4 - 9)" (( "(") (binary_expression "bVar4 - 9" (identifier "bVar4") (- "-") (number_literal "9")) () ")"))) (== "==") (number_literal "0x17")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" (identifier "pbVar19") (= "=") (identifier "pbVar20")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(4 < (byte)(bVar4 - 9))" (( "(") (binary_expression "4 < (byte)(bVar4 - 9)" (number_literal "4") (< "<") (call_expression "(byte)(bVar4 - 9)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar4 - 9)" (( "(") (binary_expression "bVar4 - 9" (identifier "bVar4") (- "-") (number_literal "9")) () ")")))) () ")")) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }" (else "else") (compound_statement "{\n      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }\n      if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }\n      if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }\nLAB_0009e154:\n      pbVar20 = local_1a0;\n      local_1bc = pbVar5;\n    }" ({ "{") (for_statement "for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));\n          pbVar5 = pbVar5 + 1) {\n      }" (for "for") (( "(") (assignment_expression "pbVar5 = (byte *)FUN_0009d46a()" (identifier "pbVar5") (= "=") (cast_expression "(byte *)FUN_0009d46a()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009d46a()" (identifier "FUN_0009d46a") (argument_list "()" (( "(") () ")"))))) (; ";") (parenthesized_expression "(bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9))" (( "(") (comma_expression "bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)" (assignment_expression "bVar4 = *pbVar5" (identifier "bVar4") (= "=") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5"))) (, ",") (binary_expression "bVar4 == 0x20 || (bVar4 == 9)" (binary_expression "bVar4 == 0x20" (identifier "bVar4") (== "==") (number_literal "0x20")) (|| "||") (parenthesized_expression "(bVar4 == 9)" (( "(") (binary_expression "bVar4 == 9" (identifier "bVar4") (== "==") (number_literal "9")) () ")")))) () ")")) (; ";") (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n      }" ({ "{") (} "}"))) (if_statement "if (bVar4 == 0x2c) {\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }" (if "if") (parenthesized_expression "(bVar4 == 0x2c)" (( "(") (binary_expression "bVar4 == 0x2c" (identifier "bVar4") (== "==") (number_literal "0x2c")) () ")")) (compound_statement "{\n        do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);\n        pbVar5 = (byte *)FUN_0009d46a();\n        goto LAB_0009f0a0;\n      }" ({ "{") (do_statement "do {\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        } while (*pbVar5 == 9);" (do "do") (compound_statement "{\n          do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);\n        }" ({ "{") (do_statement "do {\n            pbVar5 = pbVar5 + 1;\n          } while (*pbVar5 == 0x20);" (do "do") (compound_statement "{\n            pbVar5 = pbVar5 + 1;\n          }" ({ "{") (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pbVar5 == 0x20)" (( "(") (binary_expression "*pbVar5 == 0x20" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (number_literal "0x20")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pbVar5 == 9)" (( "(") (binary_expression "*pbVar5 == 9" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (number_literal "9")) () ")")) (; ";")) (expression_statement "pbVar5 = (byte *)FUN_0009d46a();" (assignment_expression "pbVar5 = (byte *)FUN_0009d46a()" (identifier "pbVar5") (= "=") (cast_expression "(byte *)FUN_0009d46a()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009d46a()" (identifier "FUN_0009d46a") (argument_list "()" (( "(") () ")"))))) (; ";")) (goto_statement "goto LAB_0009f0a0;" (goto "goto") (statement_identifier "LAB_0009f0a0") (; ";")) (} "}"))) (if_statement "if (bVar4 != 0) {\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }" (if "if") (parenthesized_expression "(bVar4 != 0)" (( "(") (binary_expression "bVar4 != 0" (identifier "bVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        bVar17 = bVar4 - 9;\n        local_1bc = pbVar5;\n        if (bVar17 != 0x17) goto LAB_0009f0b9;\n        goto LAB_0009f07d;\n      }" ({ "{") (expression_statement "bVar17 = bVar4 - 9;" (assignment_expression "bVar17 = bVar4 - 9" (identifier "bVar17") (= "=") (binary_expression "bVar4 - 9" (identifier "bVar4") (- "-") (number_literal "9"))) (; ";")) (expression_statement "local_1bc = pbVar5;" (assignment_expression "local_1bc = pbVar5" (identifier "local_1bc") (= "=") (identifier "pbVar5")) (; ";")) (if_statement "if (bVar17 != 0x17) goto LAB_0009f0b9;" (if "if") (parenthesized_expression "(bVar17 != 0x17)" (( "(") (binary_expression "bVar17 != 0x17" (identifier "bVar17") (!= "!=") (number_literal "0x17")) () ")")) (goto_statement "goto LAB_0009f0b9;" (goto "goto") (statement_identifier "LAB_0009f0b9") (; ";"))) (goto_statement "goto LAB_0009f07d;" (goto "goto") (statement_identifier "LAB_0009f07d") (; ";")) (} "}"))) (labeled_statement "LAB_0009e154:\n      pbVar20 = local_1a0;" (statement_identifier "LAB_0009e154") (: ":") (expression_statement "pbVar20 = local_1a0;" (assignment_expression "pbVar20 = local_1a0" (identifier "pbVar20") (= "=") (identifier "local_1a0")) (; ";"))) (expression_statement "local_1bc = pbVar5;" (assignment_expression "local_1bc = pbVar5" (identifier "local_1bc") (= "=") (identifier "pbVar5")) (; ";")) (} "}")))) (expression_statement "local_1d4 = local_1a0;" (assignment_expression "local_1d4 = local_1a0" (identifier "local_1d4") (= "=") (identifier "local_1a0")) (; ";")) (expression_statement "*pbVar20 = 0;" (assignment_expression "*pbVar20 = 0" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (= "=") (number_literal "0")) (; ";")) (for_statement "for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {\n    }" (for "for") (( "(") (; ";") (parenthesized_expression "(*pbVar5 == 0x20 || (*pbVar5 == 9))" (( "(") (binary_expression "*pbVar5 == 0x20 || (*pbVar5 == 9)" (binary_expression "*pbVar5 == 0x20" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (number_literal "0x20")) (|| "||") (parenthesized_expression "(*pbVar5 == 9)" (( "(") (binary_expression "*pbVar5 == 9" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (number_literal "9")) () ")"))) () ")")) (; ";") (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n    }" ({ "{") (} "}"))) (expression_statement "__strcpy_chk(local_120,pbVar5,0x80);" (call_expression "__strcpy_chk(local_120,pbVar5,0x80)" (identifier "__strcpy_chk") (argument_list "(local_120,pbVar5,0x80)" (( "(") (identifier "local_120") (, ",") (identifier "pbVar5") (, ",") (number_literal "0x80") () ")"))) (; ";")) (expression_statement "puVar6 = (undefined1 *)FUN_00018cc2();" (assignment_expression "puVar6 = (undefined1 *)FUN_00018cc2()" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)FUN_00018cc2()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00018cc2()" (identifier "FUN_00018cc2") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar25 = puVar6 != (undefined1 *)0x0;" (assignment_expression "bVar25 = puVar6 != (undefined1 *)0x0" (identifier "bVar25") (= "=") (binary_expression "puVar6 != (undefined1 *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (bVar25) {\n      *puVar6 = 0;\n    }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n      *puVar6 = 0;\n    }" ({ "{") (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "local_1c8 = local_1ac;" (assignment_expression "local_1c8 = local_1ac" (identifier "local_1c8") (= "=") (identifier "local_1ac")) (; ";")) (if_statement "if (-1 < (int)local_1ac) {\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" (if "if") (parenthesized_expression "(-1 < (int)local_1ac)" (( "(") (binary_expression "-1 < (int)local_1ac" (number_literal "-1") (< "<") (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac"))) () ")")) (compound_statement "{\n      local_1d0 = (byte *)*piVar3;\n      uVar21 = local_1ac;\n      if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" ({ "{") (expression_statement "local_1d0 = (byte *)*piVar3;" (assignment_expression "local_1d0 = (byte *)*piVar3" (identifier "local_1d0") (= "=") (cast_expression "(byte *)*piVar3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")))) (; ";")) (expression_statement "uVar21 = local_1ac;" (assignment_expression "uVar21 = local_1ac" (identifier "uVar21") (= "=") (identifier "local_1ac")) (; ";")) (if_statement "if (1 < (int)local_1ac) {\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" (if "if") (parenthesized_expression "(1 < (int)local_1ac)" (( "(") (binary_expression "1 < (int)local_1ac" (number_literal "1") (< "<") (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac"))) () ")")) (compound_statement "{\n        do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" ({ "{") (do_statement "do {\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);" (do "do") (compound_statement "{\n          local_1d0 = (byte *)FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        }" ({ "{") (expression_statement "local_1d0 = (byte *)FUN_0009caa8();" (assignment_expression "local_1d0 = (byte *)FUN_0009caa8()" (identifier "local_1d0") (= "=") (cast_expression "(byte *)FUN_0009caa8()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009caa8()" (identifier "FUN_0009caa8") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 - 1" (identifier "uVar21") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar21 != 1)" (( "(") (binary_expression "uVar21 != 1" (identifier "uVar21") (!= "!=") (number_literal "1")) () ")")) (; ";")) (} "}"))) (expression_statement "local_1cc = (byte *)FUN_0009ca70();" (assignment_expression "local_1cc = (byte *)FUN_0009ca70()" (identifier "local_1cc") (= "=") (cast_expression "(byte *)FUN_0009ca70()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009ca70()" (identifier "FUN_0009ca70") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (if_statement "if (-1 < (int)local_1a8) {\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" (if "if") (parenthesized_expression "(-1 < (int)local_1a8)" (( "(") (binary_expression "-1 < (int)local_1a8" (number_literal "-1") (< "<") (cast_expression "(int)local_1a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a8"))) () ")")) (compound_statement "{\n      uVar21 = local_1a8;\n      if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }\n      local_1cc = (byte *)FUN_0009ca70();\n    }" ({ "{") (expression_statement "uVar21 = local_1a8;" (assignment_expression "uVar21 = local_1a8" (identifier "uVar21") (= "=") (identifier "local_1a8")) (; ";")) (if_statement "if (1 < (int)local_1a8) {\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" (if "if") (parenthesized_expression "(1 < (int)local_1a8)" (( "(") (binary_expression "1 < (int)local_1a8" (number_literal "1") (< "<") (cast_expression "(int)local_1a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a8"))) () ")")) (compound_statement "{\n        do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);\n      }" ({ "{") (do_statement "do {\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        } while (uVar21 != 1);" (do "do") (compound_statement "{\n          FUN_0009caa8();\n          uVar21 = uVar21 - 1;\n        }" ({ "{") (expression_statement "FUN_0009caa8();" (call_expression "FUN_0009caa8()" (identifier "FUN_0009caa8") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar21 = uVar21 - 1;" (assignment_expression "uVar21 = uVar21 - 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 - 1" (identifier "uVar21") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar21 != 1)" (( "(") (binary_expression "uVar21 != 1" (identifier "uVar21") (!= "!=") (number_literal "1")) () ")")) (; ";")) (} "}"))) (expression_statement "local_1cc = (byte *)FUN_0009ca70();" (assignment_expression "local_1cc = (byte *)FUN_0009ca70()" (identifier "local_1cc") (= "=") (cast_expression "(byte *)FUN_0009ca70()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009ca70()" (identifier "FUN_0009ca70") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (expression_statement "sVar7 = strlen((char *)local_1d4);" (assignment_expression "sVar7 = strlen((char *)local_1d4)" (identifier "sVar7") (= "=") (call_expression "strlen((char *)local_1d4)" (identifier "strlen") (argument_list "((char *)local_1d4)" (( "(") (cast_expression "(char *)local_1d4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_1d4")) () ")")))) (; ";")) (if_statement "if (sVar7 == 0) {\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }\n    else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(sVar7 == 0)" (( "(") (binary_expression "sVar7 == 0" (identifier "sVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n    }" ({ "{") (if_statement "if (-1 < (int)local_1ac) {\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }" (if "if") (parenthesized_expression "(-1 < (int)local_1ac)" (( "(") (binary_expression "-1 < (int)local_1ac" (number_literal "-1") (< "<") (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac"))) () ")")) (compound_statement "{\n        iVar8 = *piVar3;\n        if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }" ({ "{") (expression_statement "iVar8 = *piVar3;" (assignment_expression "iVar8 = *piVar3" (identifier "iVar8") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (if_statement "if (1 < (int)local_1ac) {\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }" (if "if") (parenthesized_expression "(1 < (int)local_1ac)" (( "(") (binary_expression "1 < (int)local_1ac" (number_literal "1") (< "<") (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac"))) () ")")) (compound_statement "{\n          do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);\n        }" ({ "{") (do_statement "do {\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          } while (local_1ac != 1);" (do "do") (compound_statement "{\n            iVar8 = FUN_0009caa8();\n            local_1ac = local_1ac - 1;\n          }" ({ "{") (expression_statement "iVar8 = FUN_0009caa8();" (assignment_expression "iVar8 = FUN_0009caa8()" (identifier "iVar8") (= "=") (call_expression "FUN_0009caa8()" (identifier "FUN_0009caa8") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_1ac = local_1ac - 1;" (assignment_expression "local_1ac = local_1ac - 1" (identifier "local_1ac") (= "=") (binary_expression "local_1ac - 1" (identifier "local_1ac") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_1ac != 1)" (( "(") (binary_expression "local_1ac != 1" (identifier "local_1ac") (!= "!=") (number_literal "1")) () ")")) (; ";")) (} "}"))) (expression_statement "piVar3[2] = iVar8;" (assignment_expression "piVar3[2] = iVar8" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "FUN_0009be15();" (call_expression "FUN_0009be15()" (identifier "FUN_0009be15") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" (else "else") (if_statement "if (local_1a0[0] == 0x21) {\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }\n    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(local_1a0[0] == 0x21)" (( "(") (binary_expression "local_1a0[0] == 0x21" (subscript_expression "local_1a0[0]" (identifier "local_1a0") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0x21")) () ")")) (compound_statement "{\n      FUN_0009d5bb();\n      FUN_00019f78();\n      FUN_0001985b();\n      iVar8 = system((char *)(local_1bc + 1));\n      if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }\n      FUN_00019903();\n      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\nLAB_0009e2b4:\n      FUN_0009d8b5();\n    }" ({ "{") (expression_statement "FUN_0009d5bb();" (call_expression "FUN_0009d5bb()" (identifier "FUN_0009d5bb") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" (identifier "FUN_00019f78") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" (identifier "FUN_0001985b") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = system((char *)(local_1bc + 1));" (assignment_expression "iVar8 = system((char *)(local_1bc + 1))" (identifier "iVar8") (= "=") (call_expression "system((char *)(local_1bc + 1))" (identifier "system") (argument_list "((char *)(local_1bc + 1))" (( "(") (cast_expression "(char *)(local_1bc + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1bc + 1)" (( "(") (binary_expression "local_1bc + 1" (identifier "local_1bc") (+ "+") (number_literal "1")) () ")"))) () ")")))) (; ";")) (if_statement "if (iVar8 != 0) {\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);\n      }" ({ "{") (expression_statement "__printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);" (call_expression "__printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX)" (identifier "__printf_chk") (argument_list "(1,"\nshell returned %i\n\n",iVar8,extraout_ECX)" (( "(") (number_literal "1") (, ",") (string_literal ""\nshell returned %i\n\n"" (" """) (escape_sequence "\n") (string_content "shell returned %i") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (identifier "iVar8") (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00019903();" (call_expression "FUN_00019903()" (identifier "FUN_00019903") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);" (assignment_expression "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f)" (pointer_expression "*(undefined1 *)(piVar3 + 0x17)" (* "*") (cast_expression "(undefined1 *)(piVar3 + 0x17)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 0x17)" (( "(") (binary_expression "piVar3 + 0x17" (identifier "piVar3") (+ "+") (number_literal "0x17")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)piVar3 + 0x21f)" (* "*") (cast_expression "(undefined1 *)((int)piVar3 + 0x21f)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x21f)" (( "(") (binary_expression "(int)piVar3 + 0x21f" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x21f")) () ")"))))) (; ";")) (labeled_statement "LAB_0009e2b4:\n      FUN_0009d8b5();" (statement_identifier "LAB_0009e2b4") (: ":") (expression_statement "FUN_0009d8b5();" (call_expression "FUN_0009d8b5()" (identifier "FUN_0009d8b5") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")) (else_clause "else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" (else "else") (if_statement "if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }\n    else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "((local_1a0[0] == 0x3d) && (local_1a0[1] == 0))" (( "(") (binary_expression "(local_1a0[0] == 0x3d) && (local_1a0[1] == 0)" (parenthesized_expression "(local_1a0[0] == 0x3d)" (( "(") (binary_expression "local_1a0[0] == 0x3d" (subscript_expression "local_1a0[0]" (identifier "local_1a0") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0x3d")) () ")")) (&& "&&") (parenthesized_expression "(local_1a0[1] == 0)" (( "(") (binary_expression "local_1a0[1] == 0" (subscript_expression "local_1a0[1]" (identifier "local_1a0") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }\n      FUN_0009c4a0("%d",local_1c8);\n    }" ({ "{") (if_statement "if ((int)local_1ac < 0) {\n        local_1c8 = FUN_0009caff();\n      }" (if "if") (parenthesized_expression "((int)local_1ac < 0)" (( "(") (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        local_1c8 = FUN_0009caff();\n      }" ({ "{") (expression_statement "local_1c8 = FUN_0009caff();" (assignment_expression "local_1c8 = FUN_0009caff()" (identifier "local_1c8") (= "=") (call_expression "FUN_0009caff()" (identifier "FUN_0009caff") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_0009c4a0("%d",local_1c8);" (call_expression "FUN_0009c4a0("%d",local_1c8)" (identifier "FUN_0009c4a0") (argument_list "("%d",local_1c8)" (( "(") (string_literal ""%d"" (" """) (string_content "%d") (" """)) (, ",") (identifier "local_1c8") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" (else "else") (compound_statement "{\n      sVar15 = sVar7;\n      if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }\n      bVar24 = false;\n      bVar26 = true;\n      pbVar5 = local_1d4;\n      pbVar19 = (byte *)"delete";\n      do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);\n      if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (7 < (int)sVar7) {\n        sVar15 = 7;\n      }" (if "if") (parenthesized_expression "(7 < (int)sVar7)" (( "(") (binary_expression "7 < (int)sVar7" (number_literal "7") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n        sVar15 = 7;\n      }" ({ "{") (expression_statement "sVar15 = 7;" (assignment_expression "sVar15 = 7" (identifier "sVar15") (= "=") (number_literal "7")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)"delete";" (assignment_expression "pbVar19 = (byte *)"delete"" (identifier "pbVar19") (= "=") (cast_expression "(byte *)"delete"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""delete"" (" """) (string_content "delete") (" """)))) (; ";")) (do_statement "do {\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      } while (bVar26);" (do "do") (compound_statement "{\n        if (sVar15 == 0) break;\n        sVar15 = sVar15 - 1;\n        bVar24 = *pbVar5 < *pbVar19;\n        bVar26 = *pbVar5 == *pbVar19;\n        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n      }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }\n      else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\n        if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }\n        iVar8 = FUN_0009dbfd(1);\n        piVar3[2] = iVar8;\n        FUN_0009be15();\n      }" ({ "{") (if_statement "if ((int)local_1ac < 0) {\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }" (if "if") (parenthesized_expression "((int)local_1ac < 0)" (( "(") (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0009cbb6();\n          FUN_0009ca70();\n        }" ({ "{") (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" (identifier "FUN_0009cbb6") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0009ca70();" (call_expression "FUN_0009ca70()" (identifier "FUN_0009ca70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = FUN_0009dbfd(1);" (assignment_expression "iVar8 = FUN_0009dbfd(1)" (identifier "iVar8") (= "=") (call_expression "FUN_0009dbfd(1)" (identifier "FUN_0009dbfd") (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (expression_statement "piVar3[2] = iVar8;" (assignment_expression "piVar3[2] = iVar8" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "FUN_0009be15();" (call_expression "FUN_0009be15()" (identifier "FUN_0009be15") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }" (else "else") (compound_statement "{\n        sVar15 = sVar7;\n        if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }\n        bVar24 = false;\n        bVar26 = true;\n        pbVar5 = local_1d4;\n        pbVar19 = (byte *)0xcd0e4;\n        do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);\n        if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (5 < (int)sVar7) {\n          sVar15 = 5;\n        }" (if "if") (parenthesized_expression "(5 < (int)sVar7)" (( "(") (binary_expression "5 < (int)sVar7" (number_literal "5") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n          sVar15 = 5;\n        }" ({ "{") (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" (identifier "sVar15") (= "=") (number_literal "5")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)0xcd0e4;" (assignment_expression "pbVar19 = (byte *)0xcd0e4" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0xcd0e4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xcd0e4"))) (; ";")) (do_statement "do {\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        } while (bVar26);" (do "do") (compound_statement "{\n          if (sVar15 == 0) break;\n          sVar15 = sVar15 - 1;\n          bVar24 = *pbVar5 < *pbVar19;\n          bVar26 = *pbVar5 == *pbVar19;\n          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n        }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }\n        else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\n          if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }\nLAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);\n        }" ({ "{") (if_statement "if ((piVar3[5] == 0) || (bVar25)) {\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }" (if "if") (parenthesized_expression "((piVar3[5] == 0) || (bVar25))" (( "(") (binary_expression "(piVar3[5] == 0) || (bVar25)" (parenthesized_expression "(piVar3[5] == 0)" (( "(") (binary_expression "piVar3[5] == 0" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")"))) () ")")) (compound_statement "{\n            if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }\n            goto LAB_0009e302;\n          }" ({ "{") (if_statement "if ((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {\n              FUN_0009c4e0("No current filename");\n            }\n            else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }" (if "if") (parenthesized_expression "((local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0'))))" (( "(") (binary_expression "(local_120[0] == 0) &&\n               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))" (parenthesized_expression "(local_120[0] == 0)" (( "(") (binary_expression "local_120[0] == 0" (subscript_expression "local_120[0]" (identifier "local_120") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))" (( "(") (parenthesized_expression "((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0'))" (( "(") (binary_expression "(char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')" (binary_expression "(char *)piVar3[0x11] == (char *)0x0" (cast_expression "(char *)piVar3[0x11]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x11]" (identifier "piVar3") ([ "[") (number_literal "0x11") (] "]"))) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(*(char *)piVar3[0x11] == '\0')" (( "(") (binary_expression "*(char *)piVar3[0x11] == '\0'" (pointer_expression "*(char *)piVar3[0x11]" (* "*") (cast_expression "(char *)piVar3[0x11]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x11]" (identifier "piVar3") ([ "[") (number_literal "0x11") (] "]")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              FUN_0009c4e0("No current filename");\n            }" ({ "{") (expression_statement "FUN_0009c4e0("No current filename");" (call_expression "FUN_0009c4e0("No current filename")" (identifier "FUN_0009c4e0") (argument_list "("No current filename")" (( "(") (string_literal ""No current filename"" (" """) (string_content "No current filename") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }" (else "else") (compound_statement "{\n              iVar8 = FUN_0009df80();\n              if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }\n              if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }\n              iVar12 = piVar3[1];\n              iVar1 = *piVar3;\n              uVar13 = FUN_0009caff();\n              pcVar9 = " [Readonly]";\n              if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }\n              pcVar10 = " [New file]";\n              if (-1 < iVar8) {\n                pcVar10 = "";\n              }\n              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);\n            }" ({ "{") (expression_statement "iVar8 = FUN_0009df80();" (assignment_expression "iVar8 = FUN_0009df80()" (identifier "iVar8") (= "=") (call_expression "FUN_0009df80()" (identifier "FUN_0009df80") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((uint)piVar3[0x21] < 0x1c) {\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }" (if "if") (parenthesized_expression "((uint)piVar3[0x21] < 0x1c)" (( "(") (binary_expression "(uint)piVar3[0x21] < 0x1c" (cast_expression "(uint)piVar3[0x21]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar3[0x21]" (identifier "piVar3") ([ "[") (number_literal "0x21") (] "]"))) (< "<") (number_literal "0x1c")) () ")")) (compound_statement "{\n                free((void *)piVar3[piVar3[0x21] + 0x22]);\n                piVar3[piVar3[0x21] + 0x22] = 0;\n              }" ({ "{") (expression_statement "free((void *)piVar3[piVar3[0x21] + 0x22]);" (call_expression "free((void *)piVar3[piVar3[0x21] + 0x22])" (identifier "free") (argument_list "((void *)piVar3[piVar3[0x21] + 0x22])" (( "(") (cast_expression "(void *)piVar3[piVar3[0x21] + 0x22]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[piVar3[0x21] + 0x22]" (identifier "piVar3") ([ "[") (binary_expression "piVar3[0x21] + 0x22" (subscript_expression "piVar3[0x21]" (identifier "piVar3") ([ "[") (number_literal "0x21") (] "]")) (+ "+") (number_literal "0x22")) (] "]"))) () ")"))) (; ";")) (expression_statement "piVar3[piVar3[0x21] + 0x22] = 0;" (assignment_expression "piVar3[piVar3[0x21] + 0x22] = 0" (subscript_expression "piVar3[piVar3[0x21] + 0x22]" (identifier "piVar3") ([ "[") (binary_expression "piVar3[0x21] + 0x22" (subscript_expression "piVar3[0x21]" (identifier "piVar3") ([ "[") (number_literal "0x21") (] "]")) (+ "+") (number_literal "0x22")) (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if ((uint)piVar3[0x20] < 0x1c) {\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }" (if "if") (parenthesized_expression "((uint)piVar3[0x20] < 0x1c)" (( "(") (binary_expression "(uint)piVar3[0x20] < 0x1c" (cast_expression "(uint)piVar3[0x20]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar3[0x20]" (identifier "piVar3") ([ "[") (number_literal "0x20") (] "]"))) (< "<") (number_literal "0x1c")) () ")")) (compound_statement "{\n                free((void *)piVar3[piVar3[0x20] + 0x22]);\n                piVar3[piVar3[0x20] + 0x22] = 0;\n              }" ({ "{") (expression_statement "free((void *)piVar3[piVar3[0x20] + 0x22]);" (call_expression "free((void *)piVar3[piVar3[0x20] + 0x22])" (identifier "free") (argument_list "((void *)piVar3[piVar3[0x20] + 0x22])" (( "(") (cast_expression "(void *)piVar3[piVar3[0x20] + 0x22]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[piVar3[0x20] + 0x22]" (identifier "piVar3") ([ "[") (binary_expression "piVar3[0x20] + 0x22" (subscript_expression "piVar3[0x20]" (identifier "piVar3") ([ "[") (number_literal "0x20") (] "]")) (+ "+") (number_literal "0x22")) (] "]"))) () ")"))) (; ";")) (expression_statement "piVar3[piVar3[0x20] + 0x22] = 0;" (assignment_expression "piVar3[piVar3[0x20] + 0x22] = 0" (subscript_expression "piVar3[piVar3[0x20] + 0x22]" (identifier "piVar3") ([ "[") (binary_expression "piVar3[0x20] + 0x22" (subscript_expression "piVar3[0x20]" (identifier "piVar3") ([ "[") (number_literal "0x20") (] "]")) (+ "+") (number_literal "0x22")) (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar12 = piVar3[1];" (assignment_expression "iVar12 = piVar3[1]" (identifier "iVar12") (= "=") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar1 = *piVar3;" (assignment_expression "iVar1 = *piVar3" (identifier "iVar1") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" (identifier "uVar13") (= "=") (call_expression "FUN_0009caff()" (identifier "FUN_0009caff") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar9 = " [Readonly]";" (assignment_expression "pcVar9 = " [Readonly]"" (identifier "pcVar9") (= "=") (string_literal "" [Readonly]"" (" """) (string_content " [Readonly]") (" """))) (; ";")) (if_statement "if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                pcVar9 = "";\n              }" (if "if") (parenthesized_expression "(*(char *)((int)piVar3 + 0x11) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar3 + 0x11) == '\0'" (pointer_expression "*(char *)((int)piVar3 + 0x11)" (* "*") (cast_expression "(char *)((int)piVar3 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x11)" (( "(") (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x11")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                pcVar9 = "";\n              }" ({ "{") (expression_statement "pcVar9 = "";" (assignment_expression "pcVar9 = """ (identifier "pcVar9") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "pcVar10 = " [New file]";" (assignment_expression "pcVar10 = " [New file]"" (identifier "pcVar10") (= "=") (string_literal "" [New file]"" (" """) (string_content " [New file]") (" """))) (; ";")) (if_statement "if (-1 < iVar8) {\n                pcVar10 = "";\n              }" (if "if") (parenthesized_expression "(-1 < iVar8)" (( "(") (binary_expression "-1 < iVar8" (number_literal "-1") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n                pcVar10 = "";\n              }" ({ "{") (expression_statement "pcVar10 = "";" (assignment_expression "pcVar10 = """ (identifier "pcVar10") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);" (call_expression "FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1)" (identifier "FUN_0009c4a0") (argument_list "("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1)" (( "(") (string_literal ""\'%s\'%s%s %dL, %dC"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content "%s%s %dL, %dC") (" """)) (, ",") (subscript_expression "piVar3[0x11]" (identifier "piVar3") ([ "[") (number_literal "0x11") (] "]")) (, ",") (identifier "pcVar10") (, ",") (identifier "pcVar9") (, ",") (identifier "uVar13") (, ",") (binary_expression "iVar12 - iVar1" (identifier "iVar12") (- "-") (identifier "iVar1")) () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")) (} "}"))) (labeled_statement "LAB_0009e3d0:\n          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);" (statement_identifier "LAB_0009e3d0") (: ":") (expression_statement "FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);" (call_expression "FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4)" (identifier "FUN_0009c4e0") (argument_list "("No write since last change (:%s! overrides)",local_1d4)" (( "(") (string_literal ""No write since last change (:%s! overrides)"" (" """) (string_content "No write since last change (:%s! overrides)") (" """)) (, ",") (identifier "local_1d4") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }" (else "else") (compound_statement "{\n          sVar15 = sVar7;\n          if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }\n          bVar24 = false;\n          bVar26 = true;\n          pbVar5 = local_1d4;\n          pbVar19 = (byte *)0xcaef1;\n          do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);\n          if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (5 < (int)sVar7) {\n            sVar15 = 5;\n          }" (if "if") (parenthesized_expression "(5 < (int)sVar7)" (( "(") (binary_expression "5 < (int)sVar7" (number_literal "5") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n            sVar15 = 5;\n          }" ({ "{") (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" (identifier "sVar15") (= "=") (number_literal "5")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)0xcaef1;" (assignment_expression "pbVar19 = (byte *)0xcaef1" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0xcaef1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xcaef1"))) (; ";")) (do_statement "do {\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          } while (bVar26);" (do "do") (compound_statement "{\n            if (sVar15 == 0) break;\n            sVar15 = sVar15 - 1;\n            bVar24 = *pbVar5 < *pbVar19;\n            bVar26 = *pbVar5 == *pbVar19;\n            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n          }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }\n          else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\n            if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }\n          }" ({ "{") (if_statement "if ((local_1ac & local_1a8) == 0xffffffff) {\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }\n            else {\n              FUN_0009c4e0("No address allowed on this command");\n            }" (if "if") (parenthesized_expression "((local_1ac & local_1a8) == 0xffffffff)" (( "(") (binary_expression "(local_1ac & local_1a8) == 0xffffffff" (parenthesized_expression "(local_1ac & local_1a8)" (( "(") (binary_expression "local_1ac & local_1a8" (identifier "local_1ac") (& "&") (identifier "local_1a8")) () ")")) (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n              if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }\n            }" ({ "{") (if_statement "if (local_120[0] == 0) {\n                piVar3[0x10] = 0;\n              }\n              else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }" (if "if") (parenthesized_expression "(local_120[0] == 0)" (( "(") (binary_expression "local_120[0] == 0" (subscript_expression "local_120[0]" (identifier "local_120") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                piVar3[0x10] = 0;\n              }" ({ "{") (expression_statement "piVar3[0x10] = 0;" (assignment_expression "piVar3[0x10] = 0" (subscript_expression "piVar3[0x10]" (identifier "piVar3") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }" (else "else") (compound_statement "{\n                free((void *)piVar3[0x11]);\n                iVar8 = FUN_00019ba3();\n                piVar3[0x11] = iVar8;\n              }" ({ "{") (expression_statement "free((void *)piVar3[0x11]);" (call_expression "free((void *)piVar3[0x11])" (identifier "free") (argument_list "((void *)piVar3[0x11])" (( "(") (cast_expression "(void *)piVar3[0x11]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[0x11]" (identifier "piVar3") ([ "[") (number_literal "0x11") (] "]"))) () ")"))) (; ";")) (expression_statement "iVar8 = FUN_00019ba3();" (assignment_expression "iVar8 = FUN_00019ba3()" (identifier "iVar8") (= "=") (call_expression "FUN_00019ba3()" (identifier "FUN_00019ba3") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar3[0x11] = iVar8;" (assignment_expression "piVar3[0x11] = iVar8" (subscript_expression "piVar3[0x11]" (identifier "piVar3") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              FUN_0009c4e0("No address allowed on this command");\n            }" (else "else") (compound_statement "{\n              FUN_0009c4e0("No address allowed on this command");\n            }" ({ "{") (expression_statement "FUN_0009c4e0("No address allowed on this command");" (call_expression "FUN_0009c4e0("No address allowed on this command")" (identifier "FUN_0009c4e0") (argument_list "("No address allowed on this command")" (( "(") (string_literal ""No address allowed on this command"" (" """) (string_content "No address allowed on this command") (" """)) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }" (else "else") (compound_statement "{\n            sVar15 = sVar7;\n            if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }\n            bVar24 = false;\n            bVar26 = true;\n            pbVar5 = local_1d4;\n            pbVar19 = (byte *)"features";\n            do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }\n          }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (9 < (int)sVar7) {\n              sVar15 = 9;\n            }" (if "if") (parenthesized_expression "(9 < (int)sVar7)" (( "(") (binary_expression "9 < (int)sVar7" (number_literal "9") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n              sVar15 = 9;\n            }" ({ "{") (expression_statement "sVar15 = 9;" (assignment_expression "sVar15 = 9" (identifier "sVar15") (= "=") (number_literal "9")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)"features";" (assignment_expression "pbVar19 = (byte *)"features"" (identifier "pbVar19") (= "=") (cast_expression "(byte *)"features"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""features"" (" """) (string_content "features") (" """)))) (; ";")) (do_statement "do {\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);" (do "do") (compound_statement "{\n              if (sVar15 == 0) break;\n              sVar15 = sVar15 - 1;\n              bVar24 = *pbVar5 < *pbVar19;\n              bVar26 = *pbVar5 == *pbVar19;\n              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n            }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }\n            else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\n              FUN_0009d5bb();\n              FUN_00019f78();\n              FUN_0001985b();\n              puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );\n              FUN_00019903();\n              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);\n              FUN_0009d8b5();\n            }" ({ "{") (expression_statement "FUN_0009d5bb();" (call_expression "FUN_0009d5bb()" (identifier "FUN_0009d5bb") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00019f78();" (call_expression "FUN_00019f78()" (identifier "FUN_00019f78") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001985b();" (call_expression "FUN_0001985b()" (identifier "FUN_0001985b") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  );" (call_expression "puts(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  )" (identifier "puts") (argument_list "(\n                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"\n                  )" (( "(") (string_literal ""These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"" (" """) (string_content "These features are available:") (escape_sequence "\n") (escape_sequence "\t") (string_content "Pattern searches with / and ?") (escape_sequence "\n") (escape_sequence "\t") (string_content "Last command repeat with .") (escape_sequence "\n") (escape_sequence "\t") (string_content "Line marking with ") (escape_sequence "\'") (string_content "x") (escape_sequence "\n") (escape_sequence "\t") (string_content "Named buffers with ") (escape_sequence "\"") (string_content "x") (escape_sequence "\n") (escape_sequence "\t") (string_content "Some colon mode commands with :") (escape_sequence "\n") (escape_sequence "\t") (string_content "Settable options with ") (escape_sequence "\"") (string_content ":set") (escape_sequence "\"") (escape_sequence "\n") (escape_sequence "\t") (string_content "Signal catching- ^C") (escape_sequence "\n") (escape_sequence "\t") (string_content "Job suspend and resume with ^Z") (escape_sequence "\n") (escape_sequence "\t") (string_content "Adapt to window re-sizes") (" """)) () ")"))) (; ";")) (expression_statement "FUN_00019903();" (call_expression "FUN_00019903()" (identifier "FUN_00019903") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);" (assignment_expression "*(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f)" (pointer_expression "*(undefined1 *)(piVar3 + 0x17)" (* "*") (cast_expression "(undefined1 *)(piVar3 + 0x17)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 0x17)" (( "(") (binary_expression "piVar3 + 0x17" (identifier "piVar3") (+ "+") (number_literal "0x17")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)piVar3 + 0x21f)" (* "*") (cast_expression "(undefined1 *)((int)piVar3 + 0x21f)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x21f)" (( "(") (binary_expression "(int)piVar3 + 0x21f" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x21f")) () ")"))))) (; ";")) (expression_statement "FUN_0009d8b5();" (call_expression "FUN_0009d8b5()" (identifier "FUN_0009d8b5") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }" (else "else") (compound_statement "{\n              sVar15 = sVar7;\n              if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }\n              bVar24 = false;\n              bVar26 = true;\n              pbVar5 = local_1d4;\n              pbVar19 = (byte *)0xbda40;\n              do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }\n            }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (5 < (int)sVar7) {\n                sVar15 = 5;\n              }" (if "if") (parenthesized_expression "(5 < (int)sVar7)" (( "(") (binary_expression "5 < (int)sVar7" (number_literal "5") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                sVar15 = 5;\n              }" ({ "{") (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" (identifier "sVar15") (= "=") (number_literal "5")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)0xbda40;" (assignment_expression "pbVar19 = (byte *)0xbda40" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0xbda40" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xbda40"))) (; ";")) (do_statement "do {\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              } while (bVar26);" (do "do") (compound_statement "{\n                if (sVar15 == 0) break;\n                sVar15 = sVar15 - 1;\n                bVar24 = *pbVar5 < *pbVar19;\n                bVar26 = *pbVar5 == *pbVar19;\n                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n              }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }\n              else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\n                if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }\n                FUN_0009d5bb();\n                puts("\r");\n                puVar2 = PTR_stdout_000d0fb4;\n                if (local_1cc < local_1d0) goto LAB_0009e2b4;\n                do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);\n                FUN_0009d8b5();\n              }" ({ "{") (if_statement "if ((int)local_1ac < 0) {\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }" (if "if") (parenthesized_expression "((int)local_1ac < 0)" (( "(") (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  local_1d0 = (byte *)FUN_0009cbb6();\n                  local_1cc = (byte *)FUN_0009ca70();\n                }" ({ "{") (expression_statement "local_1d0 = (byte *)FUN_0009cbb6();" (assignment_expression "local_1d0 = (byte *)FUN_0009cbb6()" (identifier "local_1d0") (= "=") (cast_expression "(byte *)FUN_0009cbb6()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009cbb6()" (identifier "FUN_0009cbb6") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_1cc = (byte *)FUN_0009ca70();" (assignment_expression "local_1cc = (byte *)FUN_0009ca70()" (identifier "local_1cc") (= "=") (cast_expression "(byte *)FUN_0009ca70()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009ca70()" (identifier "FUN_0009ca70") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (expression_statement "FUN_0009d5bb();" (call_expression "FUN_0009d5bb()" (identifier "FUN_0009d5bb") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puts("\r");" (call_expression "puts("\r")" (identifier "puts") (argument_list "("\r")" (( "(") (string_literal ""\r"" (" """) (escape_sequence "\r") (" """)) () ")"))) (; ";")) (expression_statement "puVar2 = PTR_stdout_000d0fb4;" (assignment_expression "puVar2 = PTR_stdout_000d0fb4" (identifier "puVar2") (= "=") (identifier "PTR_stdout_000d0fb4")) (; ";")) (if_statement "if (local_1cc < local_1d0) goto LAB_0009e2b4;" (if "if") (parenthesized_expression "(local_1cc < local_1d0)" (( "(") (binary_expression "local_1cc < local_1d0" (identifier "local_1cc") (< "<") (identifier "local_1d0")) () ")")) (goto_statement "goto LAB_0009e2b4;" (goto "goto") (statement_identifier "LAB_0009e2b4") (; ";"))) (do_statement "do {\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                } while (local_1d0 != local_1cc + 1);" (do "do") (compound_statement "{\n                  bVar27 = *local_1d0;\n                  if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  local_1d0 = local_1d0 + 1;\n                }" ({ "{") (expression_statement "bVar27 = *local_1d0;" (assignment_expression "bVar27 = *local_1d0" (identifier "bVar27") (= "=") (pointer_expression "*local_1d0" (* "*") (identifier "local_1d0"))) (; ";")) (if_statement "if ((char)bVar27 < '\0') {\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }\n                  else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" (if "if") (parenthesized_expression "((char)bVar27 < '\0')" (( "(") (binary_expression "(char)bVar27 < '\0'" (cast_expression "(char)bVar27" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar27")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }\n                  }" ({ "{") (if_statement "if (bVar27 == 0x9b) {\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }\n                    else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }" (if "if") (parenthesized_expression "(bVar27 == 0x9b)" (( "(") (binary_expression "bVar27 == 0x9b" (identifier "bVar27") (== "==") (number_literal "0x9b")) () ")")) (compound_statement "{\n                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);\n                      FUN_00019f93();\n                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);\n                    }" ({ "{") (expression_statement "fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);" (call_expression "fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2)" (identifier "fwrite_unlocked") (argument_list "(&DAT_000cd025,1,4,*(FILE **)puVar2)" (( "(") (pointer_expression "&DAT_000cd025" (& "&") (identifier "DAT_000cd025")) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2"))) () ")"))) (; ";")) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" (identifier "FUN_00019f93") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);" (call_expression "fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2)" (identifier "fwrite_unlocked") (argument_list "(&DAT_000c470b,1,3,*(FILE **)puVar2)" (( "(") (pointer_expression "&DAT_000c470b" (& "&") (identifier "DAT_000c470b")) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2"))) () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0009e548:\n                      FUN_00019f93();\n                    }" (else "else") (compound_statement "{\nLAB_0009e548:\n                      FUN_00019f93();\n                    }" ({ "{") (labeled_statement "LAB_0009e548:\n                      FUN_00019f93();" (statement_identifier "LAB_0009e548") (: ":") (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" (identifier "FUN_00019f93") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")))) (} "}")) (else_clause "else if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" (else "else") (if_statement "if (bVar27 == 10) {\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }\n                  else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" (if "if") (parenthesized_expression "(bVar27 == 10)" (( "(") (binary_expression "bVar27 == 10" (identifier "bVar27") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);\n                    FUN_00019f93();\n                  }" ({ "{") (expression_statement "fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);" (call_expression "fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2)" (identifier "fwrite_unlocked") (argument_list "(&DAT_000cd0bf,1,2,*(FILE **)puVar2)" (( "(") (pointer_expression "&DAT_000cd0bf" (& "&") (identifier "DAT_000cd0bf")) (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2"))) () ")"))) (; ";")) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" (identifier "FUN_00019f93") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" (else "else") (if_statement "if (bVar27 < 0x20) {\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }\n                  else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" (if "if") (parenthesized_expression "(bVar27 < 0x20)" (( "(") (binary_expression "bVar27 < 0x20" (identifier "bVar27") (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" ({ "{") (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" (identifier "FUN_00019f93") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" (identifier "FUN_00019f93") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" (else "else") (compound_statement "{\n                    if (bVar27 != 0x7f) goto LAB_0009e548;\n                    FUN_00019f93();\n                    FUN_00019f93();\n                  }" ({ "{") (if_statement "if (bVar27 != 0x7f) goto LAB_0009e548;" (if "if") (parenthesized_expression "(bVar27 != 0x7f)" (( "(") (binary_expression "bVar27 != 0x7f" (identifier "bVar27") (!= "!=") (number_literal "0x7f")) () ")")) (goto_statement "goto LAB_0009e548;" (goto "goto") (statement_identifier "LAB_0009e548") (; ";"))) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" (identifier "FUN_00019f93") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00019f93();" (call_expression "FUN_00019f93()" (identifier "FUN_00019f93") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))))))) (expression_statement "local_1d0 = local_1d0 + 1;" (assignment_expression "local_1d0 = local_1d0 + 1" (identifier "local_1d0") (= "=") (binary_expression "local_1d0 + 1" (identifier "local_1d0") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_1d0 != local_1cc + 1)" (( "(") (binary_expression "local_1d0 != local_1cc + 1" (identifier "local_1d0") (!= "!=") (binary_expression "local_1cc + 1" (identifier "local_1cc") (+ "+") (number_literal "1"))) () ")")) (; ";")) (expression_statement "FUN_0009d8b5();" (call_expression "FUN_0009d8b5()" (identifier "FUN_0009d8b5") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }" (else "else") (compound_statement "{\n                sVar15 = sVar7;\n                if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }\n                bVar24 = false;\n                bVar26 = true;\n                pbVar5 = local_1d4;\n                pbVar19 = &DAT_000cd0c2;\n                do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);\n                if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }\n                *(undefined1 *)((int)piVar3 + 0x12) = 0;\n              }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (5 < (int)sVar7) {\n                  sVar15 = 5;\n                }" (if "if") (parenthesized_expression "(5 < (int)sVar7)" (( "(") (binary_expression "5 < (int)sVar7" (number_literal "5") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                  sVar15 = 5;\n                }" ({ "{") (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" (identifier "sVar15") (= "=") (number_literal "5")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = &DAT_000cd0c2;" (assignment_expression "pbVar19 = &DAT_000cd0c2" (identifier "pbVar19") (= "=") (pointer_expression "&DAT_000cd0c2" (& "&") (identifier "DAT_000cd0c2"))) (; ";")) (do_statement "do {\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                } while (bVar26);" (do "do") (compound_statement "{\n                  if (sVar15 == 0) break;\n                  sVar15 = sVar15 - 1;\n                  bVar24 = *pbVar5 < *pbVar19;\n                  bVar26 = *pbVar5 == *pbVar19;\n                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }\n                else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\nLAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }\n                }" ({ "{") (labeled_statement "LAB_0009e591:\n                  if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" (statement_identifier "LAB_0009e591") (: ":") (if_statement "if (bVar25) {\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }\n                  else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n                    if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }\n                  }" ({ "{") (if_statement "if (local_1a0[0] == 0x71) {\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }" (if "if") (parenthesized_expression "(local_1a0[0] == 0x71)" (( "(") (binary_expression "local_1a0[0] == 0x71" (subscript_expression "local_1a0[0]" (identifier "local_1a0") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0x71")) () ")")) (compound_statement "{\n                      *(int *)PTR_optind_000d0f94 = piVar3[7];\n                    }" ({ "{") (expression_statement "*(int *)PTR_optind_000d0f94 = piVar3[7];" (assignment_expression "*(int *)PTR_optind_000d0f94 = piVar3[7]" (pointer_expression "*(int *)PTR_optind_000d0f94" (* "*") (cast_expression "(int *)PTR_optind_000d0f94" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optind_000d0f94"))) (= "=") (subscript_expression "piVar3[7]" (identifier "piVar3") ([ "[") (number_literal "7") (] "]"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" (else "else") (compound_statement "{\n                    if (piVar3[5] != 0) goto LAB_0009e3d0;\n                    uVar21 = *(uint *)PTR_optind_000d0f94;\n                    iVar8 = ~uVar21 + piVar3[7];\n                    if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }\n                  }" ({ "{") (if_statement "if (piVar3[5] != 0) goto LAB_0009e3d0;" (if "if") (parenthesized_expression "(piVar3[5] != 0)" (( "(") (binary_expression "piVar3[5] != 0" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009e3d0;" (goto "goto") (statement_identifier "LAB_0009e3d0") (; ";"))) (expression_statement "uVar21 = *(uint *)PTR_optind_000d0f94;" (assignment_expression "uVar21 = *(uint *)PTR_optind_000d0f94" (identifier "uVar21") (= "=") (pointer_expression "*(uint *)PTR_optind_000d0f94" (* "*") (cast_expression "(uint *)PTR_optind_000d0f94" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optind_000d0f94")))) (; ";")) (expression_statement "iVar8 = ~uVar21 + piVar3[7];" (assignment_expression "iVar8 = ~uVar21 + piVar3[7]" (identifier "iVar8") (= "=") (binary_expression "~uVar21 + piVar3[7]" (unary_expression "~uVar21" (~ "~") (identifier "uVar21")) (+ "+") (subscript_expression "piVar3[7]" (identifier "piVar3") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (local_1a0[0] == 0x71) {\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" (if "if") (parenthesized_expression "(local_1a0[0] == 0x71)" (( "(") (binary_expression "local_1a0[0] == 0x71" (subscript_expression "local_1a0[0]" (identifier "local_1a0") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0x71")) () ")")) (compound_statement "{\n                      if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }\n                    }" ({ "{") (if_statement "if (0 < iVar8) {\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }" (if "if") (parenthesized_expression "(0 < iVar8)" (( "(") (binary_expression "0 < iVar8" (number_literal "0") (< "<") (identifier "iVar8")) () ")")) (compound_statement "{\n                        FUN_0009c4e0("%d more file(s) to edit",iVar8);\n                        goto LAB_0009e302;\n                      }" ({ "{") (expression_statement "FUN_0009c4e0("%d more file(s) to edit",iVar8);" (call_expression "FUN_0009c4e0("%d more file(s) to edit",iVar8)" (identifier "FUN_0009c4e0") (argument_list "("%d more file(s) to edit",iVar8)" (( "(") (string_literal ""%d more file(s) to edit"" (" """) (string_content "%d more file(s) to edit") (" """)) (, ",") (identifier "iVar8") () ")"))) (; ";")) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")) (} "}"))) (} "}")) (else_clause "else if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" (else "else") (if_statement "if (local_1a0[0] == 0x6e) {\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }\n                    else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" (if "if") (parenthesized_expression "(local_1a0[0] == 0x6e)" (( "(") (binary_expression "local_1a0[0] == 0x6e" (subscript_expression "local_1a0[0]" (identifier "local_1a0") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0x6e")) () ")")) (compound_statement "{\n                      if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }\n                    }" ({ "{") (if_statement "if (iVar8 < 1) {\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }" (if "if") (parenthesized_expression "(iVar8 < 1)" (( "(") (binary_expression "iVar8 < 1" (identifier "iVar8") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                        FUN_0009c4e0("No more files to edit");\n                        goto LAB_0009e302;\n                      }" ({ "{") (expression_statement "FUN_0009c4e0("No more files to edit");" (call_expression "FUN_0009c4e0("No more files to edit")" (identifier "FUN_0009c4e0") (argument_list "("No more files to edit")" (( "(") (string_literal ""No more files to edit"" (" """) (string_content "No more files to edit") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")) (} "}"))) (} "}")) (else_clause "else if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" (else "else") (if_statement "if (local_1a0[0] == 0x70) {\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" (if "if") (parenthesized_expression "(local_1a0[0] == 0x70)" (( "(") (binary_expression "local_1a0[0] == 0x70" (subscript_expression "local_1a0[0]" (identifier "local_1a0") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0x70")) () ")")) (compound_statement "{\n                      if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }\n                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;\n                    }" ({ "{") (if_statement "if ((int)uVar21 < 1) {\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }" (if "if") (parenthesized_expression "((int)uVar21 < 1)" (( "(") (binary_expression "(int)uVar21 < 1" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                        FUN_0009c4e0("No previous files to edit");\n                        goto LAB_0009e302;\n                      }" ({ "{") (expression_statement "FUN_0009c4e0("No previous files to edit");" (call_expression "FUN_0009c4e0("No previous files to edit")" (identifier "FUN_0009c4e0") (argument_list "("No previous files to edit")" (( "(") (string_literal ""No previous files to edit"" (" """) (string_content "No previous files to edit") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")) (} "}"))) (expression_statement "*(uint *)PTR_optind_000d0f94 = uVar21 - 2;" (assignment_expression "*(uint *)PTR_optind_000d0f94 = uVar21 - 2" (pointer_expression "*(uint *)PTR_optind_000d0f94" (* "*") (cast_expression "(uint *)PTR_optind_000d0f94" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optind_000d0f94"))) (= "=") (binary_expression "uVar21 - 2" (identifier "uVar21") (- "-") (number_literal "2"))) (; ";")) (} "}"))))))) (} "}"))))) (} "}")) (else_clause "else {\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }" (else "else") (compound_statement "{\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0c7;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = &DAT_000cd0cc;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;\n                  sVar15 = sVar7;\n                  if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)0xc4379;\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  sVar15 = sVar7;\n                  if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }\n                  bVar24 = false;\n                  bVar26 = true;\n                  pbVar5 = local_1d4;\n                  pbVar19 = (byte *)"rewind";\n                  do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);\n                  if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }\n                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;\n                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;\n                }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }" (if "if") (parenthesized_expression "(5 < (int)sVar7)" (( "(") (binary_expression "5 < (int)sVar7" (number_literal "5") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                    sVar15 = 5;\n                  }" ({ "{") (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" (identifier "sVar15") (= "=") (number_literal "5")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = &DAT_000cd0c7;" (assignment_expression "pbVar19 = &DAT_000cd0c7" (identifier "pbVar19") (= "=") (pointer_expression "&DAT_000cd0c7" (& "&") (identifier "DAT_000cd0c7"))) (; ";")) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" (do "do") (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (goto_statement "goto LAB_0009e591;" (goto "goto") (statement_identifier "LAB_0009e591") (; ";"))) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }" (if "if") (parenthesized_expression "(5 < (int)sVar7)" (( "(") (binary_expression "5 < (int)sVar7" (number_literal "5") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                    sVar15 = 5;\n                  }" ({ "{") (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" (identifier "sVar15") (= "=") (number_literal "5")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = &DAT_000cd0cc;" (assignment_expression "pbVar19 = &DAT_000cd0cc" (identifier "pbVar19") (= "=") (pointer_expression "&DAT_000cd0cc" (& "&") (identifier "DAT_000cd0cc"))) (; ";")) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" (do "do") (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (goto_statement "goto LAB_0009e591;" (goto "goto") (statement_identifier "LAB_0009e591") (; ";"))) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (5 < (int)sVar7) {\n                    sVar15 = 5;\n                  }" (if "if") (parenthesized_expression "(5 < (int)sVar7)" (( "(") (binary_expression "5 < (int)sVar7" (number_literal "5") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                    sVar15 = 5;\n                  }" ({ "{") (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" (identifier "sVar15") (= "=") (number_literal "5")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)0xc4379;" (assignment_expression "pbVar19 = (byte *)0xc4379" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0xc4379" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc4379"))) (; ";")) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" (do "do") (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\n                    if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }\n                    if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;\n                    iVar8 = *piVar3;\n                    iVar12 = FUN_0009c54d();\n                    if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" ({ "{") (if_statement "if (local_120[0] == 0) {\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }" (if "if") (parenthesized_expression "(local_120[0] == 0)" (( "(") (binary_expression "local_120[0] == 0" (subscript_expression "local_120[0]" (identifier "local_120") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      FUN_0009c4e0("No filename given");\n                      goto LAB_0009e302;\n                    }" ({ "{") (expression_statement "FUN_0009c4e0("No filename given");" (call_expression "FUN_0009c4e0("No filename given")" (identifier "FUN_0009c4e0") (argument_list "("No filename given")" (( "(") (string_literal ""No filename given"" (" """) (string_content "No filename given") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")) (} "}"))) (if_statement "if ((int)local_1ac < 0) {\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }\n                    else if (local_1ac != 0) goto LAB_0009ed56;" (if "if") (parenthesized_expression "((int)local_1ac < 0)" (( "(") (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                      FUN_0009cbb6();\nLAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();\n                      if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }\n                    }" ({ "{") (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" (identifier "FUN_0009cbb6") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0009ed56:\n                      local_1d0 = (byte *)FUN_0009caa8();" (statement_identifier "LAB_0009ed56") (: ":") (expression_statement "local_1d0 = (byte *)FUN_0009caa8();" (assignment_expression "local_1d0 = (byte *)FUN_0009caa8()" (identifier "local_1d0") (= "=") (cast_expression "(byte *)FUN_0009caa8()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009caa8()" (identifier "FUN_0009caa8") (argument_list "()" (( "(") () ")"))))) (; ";"))) (if_statement "if (local_1d0 == (byte *)piVar3[1] + -1) {\n                        local_1d0 = (byte *)piVar3[1];\n                      }" (if "if") (parenthesized_expression "(local_1d0 == (byte *)piVar3[1] + -1)" (( "(") (binary_expression "local_1d0 == (byte *)piVar3[1] + -1" (identifier "local_1d0") (== "==") (binary_expression "(byte *)piVar3[1] + -1" (cast_expression "(byte *)piVar3[1]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n                        local_1d0 = (byte *)piVar3[1];\n                      }" ({ "{") (expression_statement "local_1d0 = (byte *)piVar3[1];" (assignment_expression "local_1d0 = (byte *)piVar3[1]" (identifier "local_1d0") (= "=") (cast_expression "(byte *)piVar3[1]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (local_1ac != 0) goto LAB_0009ed56;" (else "else") (if_statement "if (local_1ac != 0) goto LAB_0009ed56;" (if "if") (parenthesized_expression "(local_1ac != 0)" (( "(") (binary_expression "local_1ac != 0" (identifier "local_1ac") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009ed56;" (goto "goto") (statement_identifier "LAB_0009ed56") (; ";"))))) (expression_statement "iVar8 = *piVar3;" (assignment_expression "iVar8 = *piVar3" (identifier "iVar8") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "iVar12 = FUN_0009c54d();" (assignment_expression "iVar12 = FUN_0009c54d()" (identifier "iVar12") (= "=") (call_expression "FUN_0009c54d()" (identifier "FUN_0009c54d") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (-1 < iVar12) {\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }" (if "if") (parenthesized_expression "(-1 < iVar12)" (( "(") (binary_expression "-1 < iVar12" (number_literal "-1") (< "<") (identifier "iVar12")) () ")")) (compound_statement "{\n                      iVar1 = *piVar3;\n                      uVar13 = FUN_0009caff();\n                      pcVar9 = " [Readonly]";\n                      if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }\n                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);\n                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }\n                    }" ({ "{") (expression_statement "iVar1 = *piVar3;" (assignment_expression "iVar1 = *piVar3" (identifier "iVar1") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" (identifier "uVar13") (= "=") (call_expression "FUN_0009caff()" (identifier "FUN_0009caff") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar9 = " [Readonly]";" (assignment_expression "pcVar9 = " [Readonly]"" (identifier "pcVar9") (= "=") (string_literal "" [Readonly]"" (" """) (string_content " [Readonly]") (" """))) (; ";")) (if_statement "if (*(char *)((int)piVar3 + 0x11) == '\0') {\n                        pcVar9 = "";\n                      }" (if "if") (parenthesized_expression "(*(char *)((int)piVar3 + 0x11) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar3 + 0x11) == '\0'" (pointer_expression "*(char *)((int)piVar3 + 0x11)" (* "*") (cast_expression "(char *)((int)piVar3 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x11)" (( "(") (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x11")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                        pcVar9 = "";\n                      }" ({ "{") (expression_statement "pcVar9 = "";" (assignment_expression "pcVar9 = """ (identifier "pcVar9") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);" (call_expression "FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12)" (identifier "FUN_0009c4a0") (argument_list "("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12)" (( "(") (string_literal ""\'%s\'%s %dL, %dC"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content "%s %dL, %dC") (" """)) (, ",") (identifier "local_120") (, ",") (identifier "pcVar9") (, ",") (identifier "uVar13") (, ",") (identifier "iVar12") () ")"))) (; ";")) (if_statement "if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }" (if "if") (parenthesized_expression "((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2]))" (( "(") (binary_expression "(iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])" (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])" (( "(") (binary_expression "local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2]" (binary_expression "local_1d0 + (iVar1 - iVar8)" (identifier "local_1d0") (+ "+") (parenthesized_expression "(iVar1 - iVar8)" (( "(") (binary_expression "iVar1 - iVar8" (identifier "iVar1") (- "-") (identifier "iVar8")) () ")"))) (<= "<=") (cast_expression "(byte *)piVar3[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")))) () ")"))) () ")")) (compound_statement "{\n                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);\n                      }" ({ "{") (expression_statement "piVar3[2] = (int)((byte *)piVar3[2] + iVar12);" (assignment_expression "piVar3[2] = (int)((byte *)piVar3[2] + iVar12)" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)((byte *)piVar3[2] + iVar12)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((byte *)piVar3[2] + iVar12)" (( "(") (binary_expression "(byte *)piVar3[2] + iVar12" (cast_expression "(byte *)piVar3[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) (+ "+") (identifier "iVar12")) () ")")))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")) (} "}"))) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (7 < (int)sVar7) {\n                    sVar15 = 7;\n                  }" (if "if") (parenthesized_expression "(7 < (int)sVar7)" (( "(") (binary_expression "7 < (int)sVar7" (number_literal "7") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                    sVar15 = 7;\n                  }" ({ "{") (expression_statement "sVar15 = 7;" (assignment_expression "sVar15 = 7" (identifier "sVar15") (= "=") (number_literal "7")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)"rewind";" (assignment_expression "pbVar19 = (byte *)"rewind"" (identifier "pbVar19") (= "=") (cast_expression "(byte *)"rewind"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""rewind"" (" """) (string_content "rewind") (" """)))) (; ";")) (do_statement "do {\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  } while (bVar26);" (do "do") (compound_statement "{\n                    if (sVar15 == 0) break;\n                    sVar15 = sVar15 - 1;\n                    bVar24 = *pbVar5 < *pbVar19;\n                    bVar26 = *pbVar5 == *pbVar19;\n                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                  }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) != bVar24) {\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (!= "!=") (identifier "bVar24")) () ")")) (compound_statement "{\n                    sVar15 = sVar7;\n                    if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }\n                    bVar24 = false;\n                    bVar26 = true;\n                    pbVar5 = local_1d4;\n                    pbVar19 = (byte *)0xc47f6;\n                    do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);\n                    if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }\n                    goto LAB_0009e302;\n                  }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (4 < (int)sVar7) {\n                      sVar15 = 4;\n                    }" (if "if") (parenthesized_expression "(4 < (int)sVar7)" (( "(") (binary_expression "4 < (int)sVar7" (number_literal "4") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                      sVar15 = 4;\n                    }" ({ "{") (expression_statement "sVar15 = 4;" (assignment_expression "sVar15 = 4" (identifier "sVar15") (= "=") (number_literal "4")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)0xc47f6;" (assignment_expression "pbVar19 = (byte *)0xc47f6" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0xc47f6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc47f6"))) (; ";")) (do_statement "do {\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    } while (bVar26);" (do "do") (compound_statement "{\n                      if (sVar15 == 0) break;\n                      sVar15 = sVar15 - 1;\n                      bVar24 = *pbVar5 < *pbVar19;\n                      bVar26 = *pbVar5 == *pbVar19;\n                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                    }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }\n                    else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\n                      if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }\n                      bVar27 = *(byte *)(piVar3 + 4);\n                      puVar6 = &DAT_000cd91f;\n                      if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }\n                      puVar22 = &DAT_000cd91f;\n                      if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }\n                      puVar16 = &DAT_000cd91f;\n                      if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }\n                      puVar18 = &DAT_000cd91f;\n                      if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }\n                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);\n                    }" ({ "{") (if_statement "if (local_120[0] != 0) {\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }" (if "if") (parenthesized_expression "(local_120[0] != 0)" (( "(") (binary_expression "local_120[0] != 0" (subscript_expression "local_120[0]" (identifier "local_120") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        iVar8 = strcasecmp((char *)local_120,"all");\n                        bVar25 = iVar8 == 0;\n                        if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }\n                      }" ({ "{") (expression_statement "iVar8 = strcasecmp((char *)local_120,"all");" (assignment_expression "iVar8 = strcasecmp((char *)local_120,"all")" (identifier "iVar8") (= "=") (call_expression "strcasecmp((char *)local_120,"all")" (identifier "strcasecmp") (argument_list "((char *)local_120,"all")" (( "(") (cast_expression "(char *)local_120" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_120")) (, ",") (string_literal ""all"" (" """) (string_content "all") (" """)) () ")")))) (; ";")) (expression_statement "bVar25 = iVar8 == 0;" (assignment_expression "bVar25 = iVar8 == 0" (identifier "bVar25") (= "=") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar25) {\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (compound_statement "{\n                          local_1b4 = 0;\n                          local_1d4 = local_120;\n                          do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);\n                          goto LAB_0009e302;\n                        }" ({ "{") (expression_statement "local_1b4 = 0;" (assignment_expression "local_1b4 = 0" (identifier "local_1b4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_1d4 = local_120;" (assignment_expression "local_1d4 = local_120" (identifier "local_1d4") (= "=") (identifier "local_120")) (; ";")) (do_statement "do {\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          } while (!bVar25);" (do "do") (compound_statement "{\n                            bVar24 = false;\n                            iVar8 = 2;\n                            pbVar5 = local_1d4;\n                            pbVar19 = &DAT_000c4601;\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);\n                            if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }\n                            FUN_0009c95a(&DAT_000cd14e,1);\n                            FUN_0009c95a(&DAT_000cd158,8);\n                            FUN_0009c95a("ic",4);\n                            FUN_0009c95a(&DAT_000cd172,2);\n                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);\n                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;\n                            iVar8 = 8;\n                            pbVar5 = local_1d4 + local_1b4;\n                            pbVar19 = (byte *)"tabstop=";\n                            do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);\n                            if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }\n                            FUN_00018f04();\n                            local_1d4 = (byte *)FUN_00018ef1();\n                            bVar25 = *local_1d4 == 0;\n                          }" ({ "{") (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "iVar8 = 2;" (assignment_expression "iVar8 = 2" (identifier "iVar8") (= "=") (number_literal "2")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = &DAT_000c4601;" (assignment_expression "pbVar19 = &DAT_000c4601" (identifier "pbVar19") (= "=") (pointer_expression "&DAT_000c4601" (& "&") (identifier "DAT_000c4601"))) (; ";")) (do_statement "do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar25);" (do "do") (compound_statement "{\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar25 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar25 = *pbVar5 == *pbVar19;" (assignment_expression "bVar25 = *pbVar5 == *pbVar19" (identifier "bVar25") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar25) == bVar24) {\n                              local_1b4 = 2;\n                            }" (if "if") (parenthesized_expression "((!bVar24 && !bVar25) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar25) == bVar24" (parenthesized_expression "(!bVar24 && !bVar25)" (( "(") (binary_expression "!bVar24 && !bVar25" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\n                              local_1b4 = 2;\n                            }" ({ "{") (expression_statement "local_1b4 = 2;" (assignment_expression "local_1b4 = 2" (identifier "local_1b4") (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "FUN_0009c95a(&DAT_000cd14e,1);" (call_expression "FUN_0009c95a(&DAT_000cd14e,1)" (identifier "FUN_0009c95a") (argument_list "(&DAT_000cd14e,1)" (( "(") (pointer_expression "&DAT_000cd14e" (& "&") (identifier "DAT_000cd14e")) (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_0009c95a(&DAT_000cd158,8);" (call_expression "FUN_0009c95a(&DAT_000cd158,8)" (identifier "FUN_0009c95a") (argument_list "(&DAT_000cd158,8)" (( "(") (pointer_expression "&DAT_000cd158" (& "&") (identifier "DAT_000cd158")) (, ",") (number_literal "8") () ")"))) (; ";")) (expression_statement "FUN_0009c95a("ic",4);" (call_expression "FUN_0009c95a("ic",4)" (identifier "FUN_0009c95a") (argument_list "("ic",4)" (( "(") (string_literal ""ic"" (" """) (string_content "ic") (" """)) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "FUN_0009c95a(&DAT_000cd172,2);" (call_expression "FUN_0009c95a(&DAT_000cd172,2)" (identifier "FUN_0009c95a") (argument_list "(&DAT_000cd172,2)" (( "(") (pointer_expression "&DAT_000cd172" (& "&") (identifier "DAT_000cd172")) (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "bVar25 = CARRY4(local_1b4,(uint)local_1d4);" (assignment_expression "bVar25 = CARRY4(local_1b4,(uint)local_1d4)" (identifier "bVar25") (= "=") (call_expression "CARRY4(local_1b4,(uint)local_1d4)" (identifier "CARRY4") (argument_list "(local_1b4,(uint)local_1d4)" (( "(") (identifier "local_1b4") (, ",") (cast_expression "(uint)local_1d4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_1d4")) () ")")))) (; ";")) (expression_statement "bVar24 = local_1d4 + local_1b4 == (byte *)0x0;" (assignment_expression "bVar24 = local_1d4 + local_1b4 == (byte *)0x0" (identifier "bVar24") (= "=") (binary_expression "local_1d4 + local_1b4 == (byte *)0x0" (binary_expression "local_1d4 + local_1b4" (identifier "local_1d4") (+ "+") (identifier "local_1b4")) (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" (identifier "iVar8") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar5 = local_1d4 + local_1b4;" (assignment_expression "pbVar5 = local_1d4 + local_1b4" (identifier "pbVar5") (= "=") (binary_expression "local_1d4 + local_1b4" (identifier "local_1d4") (+ "+") (identifier "local_1b4"))) (; ";")) (expression_statement "pbVar19 = (byte *)"tabstop=";" (assignment_expression "pbVar19 = (byte *)"tabstop="" (identifier "pbVar19") (= "=") (cast_expression "(byte *)"tabstop="" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""tabstop="" (" """) (string_content "tabstop=") (" """)))) (; ";")) (do_statement "do {\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            } while (bVar24);" (do "do") (compound_statement "{\n                              pbVar20 = pbVar19;\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;\n                              bVar25 = *pbVar5 < *pbVar19;\n                              bVar24 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar20;\n                            }" ({ "{") (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" (identifier "pbVar20") (= "=") (identifier "pbVar19")) (; ";")) (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar25 = *pbVar5 < *pbVar19;" (assignment_expression "bVar25 = *pbVar5 < *pbVar19" (identifier "bVar25") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar24 = *pbVar5 == *pbVar19;" (assignment_expression "bVar24 = *pbVar5 == *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar20;" (assignment_expression "pbVar19 = pbVar20" (identifier "pbVar19") (= "=") (identifier "pbVar20")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar24) == bVar25) {\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }" (if "if") (parenthesized_expression "((!bVar25 && !bVar24) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" (( "(") (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\n                              local_1a4 = 0;\n                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);\n                              if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }\n                            }" ({ "{") (expression_statement "local_1a4 = 0;" (assignment_expression "local_1a4 = 0" (identifier "local_1a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);" (call_expression "sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20)" (identifier "sscanf") (argument_list "((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20)" (( "(") (cast_expression "(char *)(local_1d4 + local_1b4 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1d4 + local_1b4 + 8)" (( "(") (binary_expression "local_1d4 + local_1b4 + 8" (binary_expression "local_1d4 + local_1b4" (identifier "local_1d4") (+ "+") (identifier "local_1b4")) (+ "+") (number_literal "8")) () ")"))) (, ",") (string_literal ""%u"" (" """) (string_content "%u") (" """)) (, ",") (pointer_expression "&local_1a4" (& "&") (identifier "local_1a4")) (, ",") (identifier "pbVar20") () ")"))) (; ";")) (if_statement "if (local_1a4 - 1U < 0x20) {\n                                piVar3[0x15] = local_1a4;\n                              }" (if "if") (parenthesized_expression "(local_1a4 - 1U < 0x20)" (( "(") (binary_expression "local_1a4 - 1U < 0x20" (binary_expression "local_1a4 - 1U" (identifier "local_1a4") (- "-") (number_literal "1U")) (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n                                piVar3[0x15] = local_1a4;\n                              }" ({ "{") (expression_statement "piVar3[0x15] = local_1a4;" (assignment_expression "piVar3[0x15] = local_1a4" (subscript_expression "piVar3[0x15]" (identifier "piVar3") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "local_1a4")) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00018f04();" (call_expression "FUN_00018f04()" (identifier "FUN_00018f04") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_1d4 = (byte *)FUN_00018ef1();" (assignment_expression "local_1d4 = (byte *)FUN_00018ef1()" (identifier "local_1d4") (= "=") (cast_expression "(byte *)FUN_00018ef1()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00018ef1()" (identifier "FUN_00018ef1") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar25 = *local_1d4 == 0;" (assignment_expression "bVar25 = *local_1d4 == 0" (identifier "bVar25") (= "=") (binary_expression "*local_1d4 == 0" (pointer_expression "*local_1d4" (* "*") (identifier "local_1d4")) (== "==") (number_literal "0"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (; ";")) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar27 = *(byte *)(piVar3 + 4);" (assignment_expression "bVar27 = *(byte *)(piVar3 + 4)" (identifier "bVar27") (= "=") (pointer_expression "*(byte *)(piVar3 + 4)" (* "*") (cast_expression "(byte *)(piVar3 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 4)" (( "(") (binary_expression "piVar3 + 4" (identifier "piVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar6 = &DAT_000cd91f;" (assignment_expression "puVar6 = &DAT_000cd91f" (identifier "puVar6") (= "=") (pointer_expression "&DAT_000cd91f" (& "&") (identifier "DAT_000cd91f"))) (; ";")) (if_statement "if ((bVar27 & 2) == 0) {\n                        puVar6 = &DAT_000c4601;\n                      }" (if "if") (parenthesized_expression "((bVar27 & 2) == 0)" (( "(") (binary_expression "(bVar27 & 2) == 0" (parenthesized_expression "(bVar27 & 2)" (( "(") (binary_expression "bVar27 & 2" (identifier "bVar27") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        puVar6 = &DAT_000c4601;\n                      }" ({ "{") (expression_statement "puVar6 = &DAT_000c4601;" (assignment_expression "puVar6 = &DAT_000c4601" (identifier "puVar6") (= "=") (pointer_expression "&DAT_000c4601" (& "&") (identifier "DAT_000c4601"))) (; ";")) (} "}"))) (expression_statement "puVar22 = &DAT_000cd91f;" (assignment_expression "puVar22 = &DAT_000cd91f" (identifier "puVar22") (= "=") (pointer_expression "&DAT_000cd91f" (& "&") (identifier "DAT_000cd91f"))) (; ";")) (if_statement "if ((bVar27 & 4) == 0) {\n                        puVar22 = &DAT_000c4601;\n                      }" (if "if") (parenthesized_expression "((bVar27 & 4) == 0)" (( "(") (binary_expression "(bVar27 & 4) == 0" (parenthesized_expression "(bVar27 & 4)" (( "(") (binary_expression "bVar27 & 4" (identifier "bVar27") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        puVar22 = &DAT_000c4601;\n                      }" ({ "{") (expression_statement "puVar22 = &DAT_000c4601;" (assignment_expression "puVar22 = &DAT_000c4601" (identifier "puVar22") (= "=") (pointer_expression "&DAT_000c4601" (& "&") (identifier "DAT_000c4601"))) (; ";")) (} "}"))) (expression_statement "puVar16 = &DAT_000cd91f;" (assignment_expression "puVar16 = &DAT_000cd91f" (identifier "puVar16") (= "=") (pointer_expression "&DAT_000cd91f" (& "&") (identifier "DAT_000cd91f"))) (; ";")) (if_statement "if ((bVar27 & 8) == 0) {\n                        puVar16 = &DAT_000c4601;\n                      }" (if "if") (parenthesized_expression "((bVar27 & 8) == 0)" (( "(") (binary_expression "(bVar27 & 8) == 0" (parenthesized_expression "(bVar27 & 8)" (( "(") (binary_expression "bVar27 & 8" (identifier "bVar27") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        puVar16 = &DAT_000c4601;\n                      }" ({ "{") (expression_statement "puVar16 = &DAT_000c4601;" (assignment_expression "puVar16 = &DAT_000c4601" (identifier "puVar16") (= "=") (pointer_expression "&DAT_000c4601" (& "&") (identifier "DAT_000c4601"))) (; ";")) (} "}"))) (expression_statement "puVar18 = &DAT_000cd91f;" (assignment_expression "puVar18 = &DAT_000cd91f" (identifier "puVar18") (= "=") (pointer_expression "&DAT_000cd91f" (& "&") (identifier "DAT_000cd91f"))) (; ";")) (if_statement "if ((bVar27 & 1) == 0) {\n                        puVar18 = &DAT_000c4601;\n                      }" (if "if") (parenthesized_expression "((bVar27 & 1) == 0)" (( "(") (binary_expression "(bVar27 & 1) == 0" (parenthesized_expression "(bVar27 & 1)" (( "(") (binary_expression "bVar27 & 1" (identifier "bVar27") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        puVar18 = &DAT_000c4601;\n                      }" ({ "{") (expression_statement "puVar18 = &DAT_000c4601;" (assignment_expression "puVar18 = &DAT_000c4601" (identifier "puVar18") (= "=") (pointer_expression "&DAT_000c4601" (& "&") (identifier "DAT_000c4601"))) (; ";")) (} "}"))) (expression_statement "FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);" (call_expression "FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15])" (identifier "FUN_0009c4e0") (argument_list "("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",\n                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15])" (( "(") (string_literal ""%sautoindent %sflash %signorecase %sshowmatch tabstop=%u"" (" """) (string_content "%sautoindent %sflash %signorecase %sshowmatch tabstop=%u") (" """)) (, ",") (identifier "puVar18") (, ",") (identifier "puVar16") (, ",") (identifier "puVar22") (, ",") (identifier "puVar6") (, ",") (subscript_expression "piVar3[0x15]" (identifier "piVar3") ([ "[") (number_literal "0x15") (] "]")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }" (else "else") (compound_statement "{\n                      if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }\n                      sVar15 = sVar7;\n                      if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }\n                      bVar24 = false;\n                      bVar26 = true;\n                      pbVar5 = local_1d4;\n                      pbVar19 = (byte *)0xcabbd;\n                      do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);\n                      if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }\n                    }" ({ "{") (if_statement "if (local_1a0[0] == 0x73) {\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }" (if "if") (parenthesized_expression "(local_1a0[0] == 0x73)" (( "(") (binary_expression "local_1a0[0] == 0x73" (subscript_expression "local_1a0[0]" (identifier "local_1a0") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0x73")) () ")")) (compound_statement "{\n                        bVar27 = local_1bc[1];\n                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);\n                        if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }\n                        FUN_0009c4a0(":s expression missing delimiters");\n                        goto LAB_0009e30a;\n                      }" ({ "{") (expression_statement "bVar27 = local_1bc[1];" (assignment_expression "bVar27 = local_1bc[1]" (identifier "bVar27") (= "=") (subscript_expression "local_1bc[1]" (identifier "local_1bc") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);" (assignment_expression "pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27)" (identifier "pcVar9") (= "=") (call_expression "strchr((char *)(local_1bc + 2),(uint)bVar27)" (identifier "strchr") (argument_list "((char *)(local_1bc + 2),(uint)bVar27)" (( "(") (cast_expression "(char *)(local_1bc + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1bc + 2)" (( "(") (binary_expression "local_1bc + 2" (identifier "local_1bc") (+ "+") (number_literal "2")) () ")"))) (, ",") (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) () ")")))) (; ";")) (if_statement "if (pcVar9 != (char *)0x0) {\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }" (if "if") (parenthesized_expression "(pcVar9 != (char *)0x0)" (( "(") (binary_expression "pcVar9 != (char *)0x0" (identifier "pcVar9") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          *pcVar9 = '\0';\n                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);\n                          if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }\n                        }" ({ "{") (expression_statement "*pcVar9 = '\0';" (assignment_expression "*pcVar9 = '\0'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);" (assignment_expression "pcVar10 = strchr(pcVar9 + 1,(uint)bVar27)" (identifier "pcVar10") (= "=") (call_expression "strchr(pcVar9 + 1,(uint)bVar27)" (identifier "strchr") (argument_list "(pcVar9 + 1,(uint)bVar27)" (( "(") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1")) (, ",") (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) () ")")))) (; ";")) (if_statement "if (pcVar10 != (char *)0x0) {\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }" (if "if") (parenthesized_expression "(pcVar10 != (char *)0x0)" (( "(") (binary_expression "pcVar10 != (char *)0x0" (identifier "pcVar10") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                            *pcVar10 = '\0';\n                            cVar14 = pcVar10[1];\n                            if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }\n                            uVar21 = local_1ac;\n                            if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }\n                            goto LAB_0009e302;\n                          }" ({ "{") (expression_statement "*pcVar10 = '\0';" (assignment_expression "*pcVar10 = '\0'" (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "cVar14 = pcVar10[1];" (assignment_expression "cVar14 = pcVar10[1]" (identifier "cVar14") (= "=") (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((int)local_1ac < 0) {\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }\n                            else {\n                              FUN_0009cbb6();\n                            }" (if "if") (parenthesized_expression "((int)local_1ac < 0)" (( "(") (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                              FUN_0009cbb6();\n                              local_1ac = FUN_0009caff();\n                            }" ({ "{") (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" (identifier "FUN_0009cbb6") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_1ac = FUN_0009caff();" (assignment_expression "local_1ac = FUN_0009caff()" (identifier "local_1ac") (= "=") (call_expression "FUN_0009caff()" (identifier "FUN_0009caff") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                              FUN_0009cbb6();\n                            }" (else "else") (compound_statement "{\n                              FUN_0009cbb6();\n                            }" ({ "{") (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" (identifier "FUN_0009cbb6") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar21 = local_1ac;" (assignment_expression "uVar21 = local_1ac" (identifier "uVar21") (= "=") (identifier "local_1ac")) (; ";")) (if_statement "if (((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }" (if "if") (parenthesized_expression "(((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8))" (( "(") (binary_expression "((int)local_1a8 < 0) ||\n                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)" (parenthesized_expression "((int)local_1a8 < 0)" (( "(") (binary_expression "(int)local_1a8 < 0" (cast_expression "(int)local_1a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a8")) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)" (( "(") (comma_expression "uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8" (assignment_expression "uVar21 = local_1a8" (identifier "uVar21") (= "=") (identifier "local_1a8")) (, ",") (binary_expression "(int)local_1ac <= (int)local_1a8" (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac")) (<= "<=") (cast_expression "(int)local_1a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a8")))) () ")"))) () ")")) (compound_statement "{\nLAB_0009eafa:\n                              local_1a8 = uVar21;\n                              iVar8 = FUN_0009d344();\n                              uVar21 = local_1a8;\n                              if (iVar8 == 0) goto LAB_0009eb5a;\n                              FUN_0009c26a();\n                              iVar12 = FUN_0009c75e();\n                              if (cVar14 == 'g') goto code_r0x0009eb3b;\n                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;\n                            }" ({ "{") (labeled_statement "LAB_0009eafa:\n                              local_1a8 = uVar21;" (statement_identifier "LAB_0009eafa") (: ":") (expression_statement "local_1a8 = uVar21;" (assignment_expression "local_1a8 = uVar21" (identifier "local_1a8") (= "=") (identifier "uVar21")) (; ";"))) (expression_statement "iVar8 = FUN_0009d344();" (assignment_expression "iVar8 = FUN_0009d344()" (identifier "iVar8") (= "=") (call_expression "FUN_0009d344()" (identifier "FUN_0009d344") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar21 = local_1a8;" (assignment_expression "uVar21 = local_1a8" (identifier "uVar21") (= "=") (identifier "local_1a8")) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_0009eb5a;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0009eb5a;" (goto "goto") (statement_identifier "LAB_0009eb5a") (; ";"))) (expression_statement "FUN_0009c26a();" (call_expression "FUN_0009c26a()" (identifier "FUN_0009c26a") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar12 = FUN_0009c75e();" (assignment_expression "iVar12 = FUN_0009c75e()" (identifier "iVar12") (= "=") (call_expression "FUN_0009c75e()" (identifier "FUN_0009c75e") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar14 == 'g') goto code_r0x0009eb3b;" (if "if") (parenthesized_expression "(cVar14 == 'g')" (( "(") (binary_expression "cVar14 == 'g'" (identifier "cVar14") (== "==") (char_literal "'g'" (' "'") (character "g") (' "'"))) () ")")) (goto_statement "goto code_r0x0009eb3b;" (goto "goto") (statement_identifier "code_r0x0009eb3b") (; ";"))) (if_statement "if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;" (if "if") (parenthesized_expression "((int)(local_1ac + 1) <= (int)local_1a8)" (( "(") (binary_expression "(int)(local_1ac + 1) <= (int)local_1a8" (cast_expression "(int)(local_1ac + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_1ac + 1)" (( "(") (binary_expression "local_1ac + 1" (identifier "local_1ac") (+ "+") (number_literal "1")) () ")"))) (<= "<=") (cast_expression "(int)local_1a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a8"))) () ")")) (goto_statement "goto LAB_0009eb65;" (goto "goto") (statement_identifier "LAB_0009eb65") (; ";"))) (} "}"))) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_0009c4a0(":s expression missing delimiters");" (call_expression "FUN_0009c4a0(":s expression missing delimiters")" (identifier "FUN_0009c4a0") (argument_list "(":s expression missing delimiters")" (( "(") (string_literal "":s expression missing delimiters"" (" """) (string_content ":s expression missing delimiters") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_0009e30a;" (goto "goto") (statement_identifier "LAB_0009e30a") (; ";")) (} "}"))) (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (8 < (int)sVar7) {\n                        sVar15 = 8;\n                      }" (if "if") (parenthesized_expression "(8 < (int)sVar7)" (( "(") (binary_expression "8 < (int)sVar7" (number_literal "8") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                        sVar15 = 8;\n                      }" ({ "{") (expression_statement "sVar15 = 8;" (assignment_expression "sVar15 = 8" (identifier "sVar15") (= "=") (number_literal "8")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)0xcabbd;" (assignment_expression "pbVar19 = (byte *)0xcabbd" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0xcabbd" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xcabbd"))) (; ";")) (do_statement "do {\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      } while (bVar26);" (do "do") (compound_statement "{\n                        if (sVar15 == 0) break;\n                        sVar15 = sVar15 - 1;\n                        bVar24 = *pbVar5 < *pbVar19;\n                        bVar26 = *pbVar5 == *pbVar19;\n                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                      }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) == bVar24) {\n                        FUN_0009c4a0("1.30.1");\n                      }\n                      else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) == bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) == bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar24")) () ")")) (compound_statement "{\n                        FUN_0009c4a0("1.30.1");\n                      }" ({ "{") (expression_statement "FUN_0009c4a0("1.30.1");" (call_expression "FUN_0009c4a0("1.30.1")" (identifier "FUN_0009c4a0") (argument_list "("1.30.1")" (( "(") (string_literal ""1.30.1"" (" """) (string_content "1.30.1") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }" (else "else") (compound_statement "{\n                        sVar15 = sVar7;\n                        if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }\n                        bVar24 = false;\n                        bVar26 = true;\n                        pbVar5 = local_1d4;\n                        pbVar19 = (byte *)0xc4644;\n                        do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);\n                        if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }\n                        if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }\n                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }\n                      }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (6 < (int)sVar7) {\n                          sVar15 = 6;\n                        }" (if "if") (parenthesized_expression "(6 < (int)sVar7)" (( "(") (binary_expression "6 < (int)sVar7" (number_literal "6") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                          sVar15 = 6;\n                        }" ({ "{") (expression_statement "sVar15 = 6;" (assignment_expression "sVar15 = 6" (identifier "sVar15") (= "=") (number_literal "6")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)0xc4644;" (assignment_expression "pbVar19 = (byte *)0xc4644" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0xc4644" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc4644"))) (; ";")) (do_statement "do {\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        } while (bVar26);" (do "do") (compound_statement "{\n                          if (sVar15 == 0) break;\n                          sVar15 = sVar15 - 1;\n                          bVar24 = *pbVar5 < *pbVar19;\n                          bVar26 = *pbVar5 == *pbVar19;\n                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                        }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) != bVar24) {\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (!= "!=") (identifier "bVar24")) () ")")) (compound_statement "{\n                          sVar15 = sVar7;\n                          if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }\n                          bVar24 = false;\n                          bVar26 = true;\n                          pbVar5 = local_1d4;\n                          pbVar19 = &DAT_000c86f9;\n                          do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);\n                          if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }\n                        }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (3 < (int)sVar7) {\n                            sVar15 = 3;\n                          }" (if "if") (parenthesized_expression "(3 < (int)sVar7)" (( "(") (binary_expression "3 < (int)sVar7" (number_literal "3") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                            sVar15 = 3;\n                          }" ({ "{") (expression_statement "sVar15 = 3;" (assignment_expression "sVar15 = 3" (identifier "sVar15") (= "=") (number_literal "3")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = &DAT_000c86f9;" (assignment_expression "pbVar19 = &DAT_000c86f9" (identifier "pbVar19") (= "=") (pointer_expression "&DAT_000c86f9" (& "&") (identifier "DAT_000c86f9"))) (; ";")) (do_statement "do {\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          } while (bVar26);" (do "do") (compound_statement "{\n                            if (sVar15 == 0) break;\n                            sVar15 = sVar15 - 1;\n                            bVar24 = *pbVar5 < *pbVar19;\n                            bVar26 = *pbVar5 == *pbVar19;\n                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                          }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar24 && !bVar26) != bVar24) {\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }" (if "if") (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (!= "!=") (identifier "bVar24")) () ")")) (compound_statement "{\n                            sVar15 = sVar7;\n                            if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }\n                            bVar24 = false;\n                            bVar26 = true;\n                            pbVar5 = local_1d4;\n                            pbVar19 = (byte *)0xc52d8;\n                            do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);\n                            if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }\n                          }" ({ "{") (expression_statement "sVar15 = sVar7;" (assignment_expression "sVar15 = sVar7" (identifier "sVar15") (= "=") (identifier "sVar7")) (; ";")) (if_statement "if (3 < (int)sVar7) {\n                              sVar15 = 3;\n                            }" (if "if") (parenthesized_expression "(3 < (int)sVar7)" (( "(") (binary_expression "3 < (int)sVar7" (number_literal "3") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                              sVar15 = 3;\n                            }" ({ "{") (expression_statement "sVar15 = 3;" (assignment_expression "sVar15 = 3" (identifier "sVar15") (= "=") (number_literal "3")) (; ";")) (} "}"))) (expression_statement "bVar24 = false;" (assignment_expression "bVar24 = false" (identifier "bVar24") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = local_1d4;" (assignment_expression "pbVar5 = local_1d4" (identifier "pbVar5") (= "=") (identifier "local_1d4")) (; ";")) (expression_statement "pbVar19 = (byte *)0xc52d8;" (assignment_expression "pbVar19 = (byte *)0xc52d8" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0xc52d8" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc52d8"))) (; ";")) (do_statement "do {\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            } while (bVar26);" (do "do") (compound_statement "{\n                              if (sVar15 == 0) break;\n                              sVar15 = sVar15 - 1;\n                              bVar24 = *pbVar5 < *pbVar19;\n                              bVar26 = *pbVar5 == *pbVar19;\n                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;\n                            }" ({ "{") (if_statement "if (sVar15 == 0) break;" (if "if") (parenthesized_expression "(sVar15 == 0)" (( "(") (binary_expression "sVar15 == 0" (identifier "sVar15") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar15 = sVar15 - 1;" (assignment_expression "sVar15 = sVar15 - 1" (identifier "sVar15") (= "=") (binary_expression "sVar15 - 1" (identifier "sVar15") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar24 = *pbVar5 < *pbVar19;" (assignment_expression "bVar24 = *pbVar5 < *pbVar19" (identifier "bVar24") (= "=") (binary_expression "*pbVar5 < *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (< "<") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "bVar26 = *pbVar5 == *pbVar19;" (assignment_expression "bVar26 = *pbVar5 == *pbVar19" (identifier "bVar26") (= "=") (binary_expression "*pbVar5 == *pbVar19" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (== "==") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar27 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if (((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }" (if "if") (parenthesized_expression "(((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0))))" (( "(") (binary_expression "((!bVar24 && !bVar26) != bVar24) &&\n                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))" (parenthesized_expression "((!bVar24 && !bVar26) != bVar24)" (( "(") (binary_expression "(!bVar24 && !bVar26) != bVar24" (parenthesized_expression "(!bVar24 && !bVar26)" (( "(") (binary_expression "!bVar24 && !bVar26" (unary_expression "!bVar24" (! "!") (identifier "bVar24")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (!= "!=") (identifier "bVar24")) () ")")) (&& "&&") (parenthesized_expression "((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))" (( "(") (parenthesized_expression "(local_1a0[0] != 0x78 || (local_1a0[1] != 0))" (( "(") (binary_expression "local_1a0[0] != 0x78 || (local_1a0[1] != 0)" (binary_expression "local_1a0[0] != 0x78" (subscript_expression "local_1a0[0]" (identifier "local_1a0") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0x78")) (|| "||") (parenthesized_expression "(local_1a0[1] != 0)" (( "(") (binary_expression "local_1a0[1] != 0" (subscript_expression "local_1a0[1]" (identifier "local_1a0") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                              if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }\n                              bVar25 = false;\n                              bVar24 = true;\n                              pbVar5 = &DAT_000cd19e;\n                              do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);\n                              if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }\n                              goto LAB_0009e302;\n                            }" ({ "{") (if_statement "if (5 < (int)sVar7) {\n                                sVar7 = 5;\n                              }" (if "if") (parenthesized_expression "(5 < (int)sVar7)" (( "(") (binary_expression "5 < (int)sVar7" (number_literal "5") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n                                sVar7 = 5;\n                              }" ({ "{") (expression_statement "sVar7 = 5;" (assignment_expression "sVar7 = 5" (identifier "sVar7") (= "=") (number_literal "5")) (; ";")) (} "}"))) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar24 = true;" (assignment_expression "bVar24 = true" (identifier "bVar24") (= "=") (true "true")) (; ";")) (expression_statement "pbVar5 = &DAT_000cd19e;" (assignment_expression "pbVar5 = &DAT_000cd19e" (identifier "pbVar5") (= "=") (pointer_expression "&DAT_000cd19e" (& "&") (identifier "DAT_000cd19e"))) (; ";")) (do_statement "do {\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              } while (bVar24);" (do "do") (compound_statement "{\n                                if (sVar7 == 0) break;\n                                sVar7 = sVar7 - 1;\n                                bVar25 = *local_1d4 < *pbVar5;\n                                bVar24 = *local_1d4 == *pbVar5;\n                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;\n                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;\n                              }" ({ "{") (if_statement "if (sVar7 == 0) break;" (if "if") (parenthesized_expression "(sVar7 == 0)" (( "(") (binary_expression "sVar7 == 0" (identifier "sVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar7 = sVar7 - 1;" (assignment_expression "sVar7 = sVar7 - 1" (identifier "sVar7") (= "=") (binary_expression "sVar7 - 1" (identifier "sVar7") (- "-") (number_literal "1"))) (; ";")) (expression_statement "bVar25 = *local_1d4 < *pbVar5;" (assignment_expression "bVar25 = *local_1d4 < *pbVar5" (identifier "bVar25") (= "=") (binary_expression "*local_1d4 < *pbVar5" (pointer_expression "*local_1d4" (* "*") (identifier "local_1d4")) (< "<") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")))) (; ";")) (expression_statement "bVar24 = *local_1d4 == *pbVar5;" (assignment_expression "bVar24 = *local_1d4 == *pbVar5" (identifier "bVar24") (= "=") (binary_expression "*local_1d4 == *pbVar5" (pointer_expression "*local_1d4" (* "*") (identifier "local_1d4")) (== "==") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")))) (; ";")) (expression_statement "local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;" (assignment_expression "local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1" (identifier "local_1d4") (= "=") (binary_expression "local_1d4 + (uint)bVar27 * -2 + 1" (binary_expression "local_1d4 + (uint)bVar27 * -2" (identifier "local_1d4") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar5 + (uint)bVar27 * -2" (identifier "pbVar5") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar24)" (( "(") (identifier "bVar24") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar24) == bVar25) {\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }\n                              else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }" (if "if") (parenthesized_expression "((!bVar25 && !bVar24) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar24) == bVar25" (parenthesized_expression "(!bVar25 && !bVar24)" (( "(") (binary_expression "!bVar25 && !bVar24" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar24" (! "!") (identifier "bVar24"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\n                                if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }\n                                FUN_0009be4f();\n                                uVar13 = FUN_0009caff();\n                                uVar21 = piVar3[0x20];\n                                if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }\n                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);\n                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);\n                              }" ({ "{") (if_statement "if ((int)local_1ac < 0) {\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }" (if "if") (parenthesized_expression "((int)local_1ac < 0)" (( "(") (binary_expression "(int)local_1ac < 0" (cast_expression "(int)local_1ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1ac")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                                  FUN_0009cbb6();\n                                  FUN_0009ca70();\n                                }" ({ "{") (expression_statement "FUN_0009cbb6();" (call_expression "FUN_0009cbb6()" (identifier "FUN_0009cbb6") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0009ca70();" (call_expression "FUN_0009ca70()" (identifier "FUN_0009ca70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0009be4f();" (call_expression "FUN_0009be4f()" (identifier "FUN_0009be4f") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" (identifier "uVar13") (= "=") (call_expression "FUN_0009caff()" (identifier "FUN_0009caff") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar21 = piVar3[0x20];" (assignment_expression "uVar21 = piVar3[0x20]" (identifier "uVar21") (= "=") (subscript_expression "piVar3[0x20]" (identifier "piVar3") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (if_statement "if (uVar21 < 0x1a) {\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }\n                                else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }" (if "if") (parenthesized_expression "(uVar21 < 0x1a)" (( "(") (binary_expression "uVar21 < 0x1a" (identifier "uVar21") (< "<") (number_literal "0x1a")) () ")")) (compound_statement "{\n                                  uVar23 = uVar21 + 0x61 & 0xff;\n                                }" ({ "{") (expression_statement "uVar23 = uVar21 + 0x61 & 0xff;" (assignment_expression "uVar23 = uVar21 + 0x61 & 0xff" (identifier "uVar23") (= "=") (binary_expression "uVar21 + 0x61 & 0xff" (binary_expression "uVar21 + 0x61" (identifier "uVar21") (+ "+") (number_literal "0x61")) (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else {\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }" (else "else") (compound_statement "{\n                                  uVar23 = 0x44;\n                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }\n                                }" ({ "{") (expression_statement "uVar23 = 0x44;" (assignment_expression "uVar23 = 0x44" (identifier "uVar23") (= "=") (number_literal "0x44")) (; ";")) (if_statement "if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {\n                                    uVar23 = 0x44;\n                                  }" (if "if") (parenthesized_expression "((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b))" (( "(") (binary_expression "(uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)" (parenthesized_expression "(uVar21 != 0x1a)" (( "(") (binary_expression "uVar21 != 0x1a" (identifier "uVar21") (!= "!=") (number_literal "0x1a")) () ")")) (&& "&&") (parenthesized_expression "(uVar23 = 0x55, uVar21 != 0x1b)" (( "(") (comma_expression "uVar23 = 0x55, uVar21 != 0x1b" (assignment_expression "uVar23 = 0x55" (identifier "uVar23") (= "=") (number_literal "0x55")) (, ",") (binary_expression "uVar21 != 0x1b" (identifier "uVar21") (!= "!=") (number_literal "0x1b"))) () ")"))) () ")")) (compound_statement "{\n                                    uVar23 = 0x44;\n                                  }" ({ "{") (expression_statement "uVar23 = 0x44;" (assignment_expression "uVar23 = 0x44" (identifier "uVar23") (= "=") (number_literal "0x44")) (; ";")) (} "}"))) (} "}")))) (expression_statement "sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);" (assignment_expression "sVar7 = strlen((char *)piVar3[uVar21 + 0x22])" (identifier "sVar7") (= "=") (call_expression "strlen((char *)piVar3[uVar21 + 0x22])" (identifier "strlen") (argument_list "((char *)piVar3[uVar21 + 0x22])" (( "(") (cast_expression "(char *)piVar3[uVar21 + 0x22]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[uVar21 + 0x22]" (identifier "piVar3") ([ "[") (binary_expression "uVar21 + 0x22" (identifier "uVar21") (+ "+") (number_literal "0x22")) (] "]"))) () ")")))) (; ";")) (expression_statement "FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23);" (call_expression "FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23)" (identifier "FUN_0009c4a0") (argument_list "("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,\n                                             uVar23)" (( "(") (string_literal ""Yank %d lines (%d chars) into [%c]"" (" """) (string_content "Yank %d lines (%d chars) into [%c]") (" """)) (, ",") (identifier "uVar13") (, ",") (identifier "sVar7") (, ",") (identifier "uVar23") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }" (else "else") (compound_statement "{\n                                FUN_0009c3ff();\n                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);\n                              }" ({ "{") (expression_statement "FUN_0009c3ff();" (call_expression "FUN_0009c3ff()" (identifier "FUN_0009c3ff") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0009c4e0("\'%s\' is not implemented",local_a0);" (call_expression "FUN_0009c4e0("\'%s\' is not implemented",local_a0)" (identifier "FUN_0009c4e0") (argument_list "("\'%s\' is not implemented",local_a0)" (( "(") (string_literal ""\'%s\' is not implemented"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " is not implemented") (" """)) (, ",") (identifier "local_a0") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (local_120[0] != 0) {\n                          local_1c4 = local_120;\n                        }" (if "if") (parenthesized_expression "(local_120[0] != 0)" (( "(") (binary_expression "local_120[0] != 0" (subscript_expression "local_120[0]" (identifier "local_120") ([ "[") (number_literal "0") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          local_1c4 = local_120;\n                        }" ({ "{") (expression_statement "local_1c4 = local_120;" (assignment_expression "local_1c4 = local_120" (identifier "local_1c4") (= "=") (identifier "local_120")) (; ";")) (} "}"))) (if_statement "if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }\n                        else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }" (if "if") (parenthesized_expression "((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25))" (( "(") (binary_expression "(*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)" (parenthesized_expression "(*(char *)((int)piVar3 + 0x11) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar3 + 0x11) == '\0'" (pointer_expression "*(char *)((int)piVar3 + 0x11)" (* "*") (cast_expression "(char *)((int)piVar3 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x11)" (( "(") (binary_expression "(int)piVar3 + 0x11" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x11")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")"))) () ")")) (compound_statement "{\n                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }\n                        }" ({ "{") (if_statement "if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }\n                          else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }" (if "if") (parenthesized_expression "((piVar3[5] == 0) && (local_1a0[0] == 0x78))" (( "(") (binary_expression "(piVar3[5] == 0) && (local_1a0[0] == 0x78)" (parenthesized_expression "(piVar3[5] == 0)" (( "(") (binary_expression "piVar3[5] == 0" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_1a0[0] == 0x78)" (( "(") (binary_expression "local_1a0[0] == 0x78" (subscript_expression "local_1a0[0]" (identifier "local_1a0") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0x78")) () ")"))) () ")")) (compound_statement "{\n                            uVar13 = FUN_0009caff();\n                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);\n                            pbVar5 = (byte *)0x0;\nLAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }\n                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                          }" ({ "{") (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" (identifier "uVar13") (= "=") (call_expression "FUN_0009caff()" (identifier "FUN_0009caff") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);" (call_expression "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0)" (identifier "FUN_0009c4a0") (argument_list "("\'%s\' %dL, %dC",local_1c4,uVar13,0)" (( "(") (string_literal ""\'%s\' %dL, %dC"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " %dL, %dC") (" """)) (, ",") (identifier "local_1c4") (, ",") (identifier "uVar13") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "pbVar5 = (byte *)0x0;" (assignment_expression "pbVar5 = (byte *)0x0" (identifier "pbVar5") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0009ea0c:\n                            if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }" (statement_identifier "LAB_0009ea0c") (: ":") (if_statement "if (((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }" (if "if") (parenthesized_expression "(((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5))" (( "(") (binary_expression "((byte *)*piVar3 == local_1d0) &&\n                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)" (parenthesized_expression "((byte *)*piVar3 == local_1d0)" (( "(") (binary_expression "(byte *)*piVar3 == local_1d0" (cast_expression "(byte *)*piVar3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (== "==") (identifier "local_1d0")) () ")")) (&& "&&") (parenthesized_expression "((byte *)piVar3[1] == local_1d0 + (int)pbVar5)" (( "(") (binary_expression "(byte *)piVar3[1] == local_1d0 + (int)pbVar5" (cast_expression "(byte *)piVar3[1]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]"))) (== "==") (binary_expression "local_1d0 + (int)pbVar5" (identifier "local_1d0") (+ "+") (cast_expression "(int)pbVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar5")))) () ")"))) () ")")) (compound_statement "{\n                              piVar3[5] = 0;\n                              piVar3[6] = -1;\n                            }" ({ "{") (expression_statement "piVar3[5] = 0;" (assignment_expression "piVar3[5] = 0" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[6] = -1;" (assignment_expression "piVar3[6] = -1" (subscript_expression "piVar3[6]" (identifier "piVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "-1")) (; ";")) (} "}")))) (if_statement "if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }\n                            else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" (if "if") (parenthesized_expression "((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51))" (( "(") (binary_expression "(local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)" (parenthesized_expression "(local_1a0[0] == 0x78)" (( "(") (binary_expression "local_1a0[0] == 0x78" (subscript_expression "local_1a0[0]" (identifier "local_1a0") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0x78")) () ")")) (|| "||") (parenthesized_expression "((local_1a0[1] & 0xdf) == 0x51)" (( "(") (binary_expression "(local_1a0[1] & 0xdf) == 0x51" (parenthesized_expression "(local_1a0[1] & 0xdf)" (( "(") (binary_expression "local_1a0[1] & 0xdf" (subscript_expression "local_1a0[1]" (identifier "local_1a0") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x51")) () ")"))) () ")")) (compound_statement "{\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" ({ "{") (expression_statement "*(undefined1 *)((int)piVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 0x12)" (* "*") (cast_expression "(undefined1 *)((int)piVar3 + 0x12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x12)" (( "(") (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" (else "else") (if_statement "if ((local_1a0[1] & 0xdf) == 0x4e) {\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" (if "if") (parenthesized_expression "((local_1a0[1] & 0xdf) == 0x4e)" (( "(") (binary_expression "(local_1a0[1] & 0xdf) == 0x4e" (parenthesized_expression "(local_1a0[1] & 0xdf)" (( "(") (binary_expression "local_1a0[1] & 0xdf" (subscript_expression "local_1a0[1]" (identifier "local_1a0") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x4e")) () ")")) (compound_statement "{\n                              *(undefined1 *)((int)piVar3 + 0x12) = 0;\n                            }" ({ "{") (expression_statement "*(undefined1 *)((int)piVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 0x12)" (* "*") (cast_expression "(undefined1 *)((int)piVar3 + 0x12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x12)" (( "(") (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }" (else "else") (compound_statement "{\n                            pbVar5 = (byte *)FUN_0009c9dc();\n                            if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }\n                          }" ({ "{") (expression_statement "pbVar5 = (byte *)FUN_0009c9dc();" (assignment_expression "pbVar5 = (byte *)FUN_0009c9dc()" (identifier "pbVar5") (= "=") (cast_expression "(byte *)FUN_0009c9dc()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009c9dc()" (identifier "FUN_0009c9dc") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((int)pbVar5 < 0) {\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }\n                            else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }" (if "if") (parenthesized_expression "((int)pbVar5 < 0)" (( "(") (binary_expression "(int)pbVar5 < 0" (cast_expression "(int)pbVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar5")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                              if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }\n                            }" ({ "{") (if_statement "if (pbVar5 == (byte *)0xffffffff) {\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }" (if "if") (parenthesized_expression "(pbVar5 == (byte *)0xffffffff)" (( "(") (binary_expression "pbVar5 == (byte *)0xffffffff" (identifier "pbVar5") (== "==") (cast_expression "(byte *)0xffffffff" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                                FUN_0009c4e0("\'%s\' %m",local_1c4);\n                              }" ({ "{") (expression_statement "FUN_0009c4e0("\'%s\' %m",local_1c4);" (call_expression "FUN_0009c4e0("\'%s\' %m",local_1c4)" (identifier "FUN_0009c4e0") (argument_list "("\'%s\' %m",local_1c4)" (( "(") (string_literal ""\'%s\' %m"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " %m") (" """)) (, ",") (identifier "local_1c4") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }" (else "else") (compound_statement "{\n                              uVar13 = FUN_0009caff();\n                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);\n                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;\n                            }" ({ "{") (expression_statement "uVar13 = FUN_0009caff();" (assignment_expression "uVar13 = FUN_0009caff()" (identifier "uVar13") (= "=") (call_expression "FUN_0009caff()" (identifier "FUN_0009caff") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);" (call_expression "FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5)" (identifier "FUN_0009c4a0") (argument_list "("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5)" (( "(") (string_literal ""\'%s\' %dL, %dC"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " %dL, %dC") (" """)) (, ",") (identifier "local_1c4") (, ",") (identifier "uVar13") (, ",") (identifier "pbVar5") () ")"))) (; ";")) (if_statement "if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;" (if "if") (parenthesized_expression "(local_1cc + (1 - (int)local_1d0) == pbVar5)" (( "(") (binary_expression "local_1cc + (1 - (int)local_1d0) == pbVar5" (binary_expression "local_1cc + (1 - (int)local_1d0)" (identifier "local_1cc") (+ "+") (parenthesized_expression "(1 - (int)local_1d0)" (( "(") (binary_expression "1 - (int)local_1d0" (number_literal "1") (- "-") (cast_expression "(int)local_1d0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1d0"))) () ")"))) (== "==") (identifier "pbVar5")) () ")")) (goto_statement "goto LAB_0009ea0c;" (goto "goto") (statement_identifier "LAB_0009ea0c") (; ";"))) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }" (else "else") (compound_statement "{\n                          FUN_0009c4e0("\'%s\' is read only",local_1c4);\n                        }" ({ "{") (expression_statement "FUN_0009c4e0("\'%s\' is read only",local_1c4);" (call_expression "FUN_0009c4e0("\'%s\' is read only",local_1c4)" (identifier "FUN_0009c4e0") (argument_list "("\'%s\' is read only",local_1c4)" (( "(") (string_literal ""\'%s\' is read only"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " is read only") (" """)) (, ",") (identifier "local_1c4") () ")"))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")) (} "}"))) (if_statement "if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;" (if "if") (parenthesized_expression "((piVar3[5] != 0) && (!bVar25))" (( "(") (binary_expression "(piVar3[5] != 0) && (!bVar25)" (parenthesized_expression "(piVar3[5] != 0)" (( "(") (binary_expression "piVar3[5] != 0" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")"))) () ")")) (goto_statement "goto LAB_0009e3d0;" (goto "goto") (statement_identifier "LAB_0009e3d0") (; ";"))) (expression_statement "*(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;" (assignment_expression "*(undefined4 *)PTR_optind_000d0f94 = 0xffffffff" (pointer_expression "*(undefined4 *)PTR_optind_000d0f94" (* "*") (cast_expression "(undefined4 *)PTR_optind_000d0f94" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_optind_000d0f94"))) (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")))) (expression_statement "*(undefined1 *)((int)piVar3 + 0x12) = 0;" (assignment_expression "*(undefined1 *)((int)piVar3 + 0x12) = 0" (pointer_expression "*(undefined1 *)((int)piVar3 + 0x12)" (* "*") (cast_expression "(undefined1 *)((int)piVar3 + 0x12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar3 + 0x12)" (( "(") (binary_expression "(int)piVar3 + 0x12" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (+ "+") (number_literal "0x12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))) (} "}")))))))) (} "}"))) (labeled_statement "LAB_0009e302:\n  iVar8 = FUN_0009e04d();" (statement_identifier "LAB_0009e302") (: ":") (expression_statement "iVar8 = FUN_0009e04d();" (assignment_expression "iVar8 = FUN_0009e04d()" (identifier "iVar8") (= "=") (call_expression "FUN_0009e04d()" (identifier "FUN_0009e04d") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "piVar3[2] = iVar8;" (assignment_expression "piVar3[2] = iVar8" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (labeled_statement "LAB_0009e30a:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }" (statement_identifier "LAB_0009e30a") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00017e10();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_00017e10();\n  }" ({ "{") (expression_statement "FUN_00017e10();" (call_expression "FUN_00017e10()" (identifier "FUN_00017e10") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (labeled_statement "code_r0x0009eb3b:\n  pcVar11 = (char *)FUN_0009ca70();" (statement_identifier "code_r0x0009eb3b") (: ":") (expression_statement "pcVar11 = (char *)FUN_0009ca70();" (assignment_expression "pcVar11 = (char *)FUN_0009ca70()" (identifier "pcVar11") (= "=") (cast_expression "(char *)FUN_0009ca70()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009ca70()" (identifier "FUN_0009ca70") (argument_list "()" (( "(") () ")"))))) (; ";"))) (if_statement "if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }" (if "if") (parenthesized_expression "(pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1)))" (( "(") (binary_expression "pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))" (identifier "pcVar11") (<= "<=") (binary_expression "pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))" (binary_expression "pcVar10 + iVar8" (identifier "pcVar10") (+ "+") (identifier "iVar8")) (+ "+") (parenthesized_expression "(iVar12 - (int)(pcVar9 + 1))" (( "(") (binary_expression "iVar12 - (int)(pcVar9 + 1)" (identifier "iVar12") (- "-") (cast_expression "(int)(pcVar9 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar9 + 1)" (( "(") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1")) () ")")))) () ")")))) () ")")) (compound_statement "{\nLAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;\nLAB_0009eb65:\n    local_1ac = local_1ac + 1;\n    FUN_0009caa8();\n  }" ({ "{") (labeled_statement "LAB_0009eb5a:\n    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;" (statement_identifier "LAB_0009eb5a") (: ":") (if_statement "if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;" (if "if") (parenthesized_expression "((int)local_1a8 < (int)(local_1ac + 1))" (( "(") (binary_expression "(int)local_1a8 < (int)(local_1ac + 1)" (cast_expression "(int)local_1a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1a8")) (< "<") (cast_expression "(int)(local_1ac + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_1ac + 1)" (( "(") (binary_expression "local_1ac + 1" (identifier "local_1ac") (+ "+") (number_literal "1")) () ")")))) () ")")) (goto_statement "goto LAB_0009e302;" (goto "goto") (statement_identifier "LAB_0009e302") (; ";")))) (labeled_statement "LAB_0009eb65:\n    local_1ac = local_1ac + 1;" (statement_identifier "LAB_0009eb65") (: ":") (expression_statement "local_1ac = local_1ac + 1;" (assignment_expression "local_1ac = local_1ac + 1" (identifier "local_1ac") (= "=") (binary_expression "local_1ac + 1" (identifier "local_1ac") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "FUN_0009caa8();" (call_expression "FUN_0009caa8()" (identifier "FUN_0009caa8") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0009eafa;" (goto "goto") (statement_identifier "LAB_0009eafa") (; ";")) (} "}")))

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

void function_1(char *buf)

{
  int b;
  int e;
  int t;
  char cmd [128];
  char args [128];
  char buf_1 [128];
  
}


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

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

void __regparm3 MASKED(char *param_1)

{
  int iVar1;
  undefined *puVar2;
  int *piVar3;
  byte bVar4;
  byte *pbVar5;
  undefined1 *puVar6;
  size_t sVar7;
  int iVar8;
  char *pcVar9;
  char *pcVar10;
  char *pcVar11;
  int iVar12;
  undefined4 uVar13;
  char cVar14;
  undefined4 extraout_ECX;
  size_t sVar15;
  undefined1 *puVar16;
  byte bVar17;
  undefined1 *puVar18;
  byte *pbVar19;
  byte *pbVar20;
  uint uVar21;
  undefined1 *puVar22;
  uint uVar23;
  int in_GS_OFFSET;
  bool bVar24;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  byte *local_1d4;
  byte *local_1d0;
  byte *local_1cc;
  uint local_1c8;
  byte *local_1c4;
  byte *local_1bc;
  uint local_1b4;
  uint local_1ac;
  uint local_1a8;
  int local_1a4;
  byte local_1a0 [128];
  byte local_120 [128];
  undefined1 local_a0 [128];
  int local_20;
  
  piVar3 = DAT_000d1700;
  bVar27 = 0;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  cVar14 = *param_1;
  if (cVar14 != '\0') {
    if (cVar14 == ':') {
      cVar14 = param_1[1];
      param_1 = param_1 + 1;
    }
    local_1a8 = 0xffffffff;
    local_1ac = 0xffffffff;
    local_1d0 = (byte *)*DAT_000d1700;
    local_1cc = (byte *)(DAT_000d1700[1] + -1);
    FUN_0009caff();
    while ((cVar14 == ' ' || (cVar14 == '\t'))) {
      param_1 = param_1 + 1;
      cVar14 = *param_1;
    }
    local_1c4 = (byte *)piVar3[0x11];
    if (cVar14 == '%') {
      pbVar5 = (byte *)(param_1 + 1);
      local_1ac = 1;
      local_1a8 = FUN_0009caff();
LAB_0009f0a0:
      for (; (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9)); pbVar5 = pbVar5 + 1) {
      }
      if (bVar4 == 0) goto LAB_0009e154;
      bVar17 = bVar4 - 9;
      local_1bc = pbVar5;
LAB_0009f0b9:
      if (bVar17 < 5) {
LAB_0009f07d:
        pbVar20 = local_1a0;
        pbVar5 = local_1bc;
      }
      else {
        pbVar19 = local_1a0;
        pbVar5 = local_1bc;
        do {
          pbVar5 = pbVar5 + 1;
          pbVar20 = pbVar19 + 1;
          *pbVar19 = bVar4;
          bVar4 = *pbVar5;
          if ((bVar4 == 0) || ((byte)(bVar4 - 9) == 0x17)) break;
          pbVar19 = pbVar20;
        } while (4 < (byte)(bVar4 - 9));
      }
    }
    else {
      for (pbVar5 = (byte *)FUN_0009d46a(); (bVar4 = *pbVar5, bVar4 == 0x20 || (bVar4 == 9));
          pbVar5 = pbVar5 + 1) {
      }
      if (bVar4 == 0x2c) {
        do {
          do {
            pbVar5 = pbVar5 + 1;
          } while (*pbVar5 == 0x20);
        } while (*pbVar5 == 9);
        pbVar5 = (byte *)FUN_0009d46a();
        goto LAB_0009f0a0;
      }
      if (bVar4 != 0) {
        bVar17 = bVar4 - 9;
        local_1bc = pbVar5;
        if (bVar17 != 0x17) goto LAB_0009f0b9;
        goto LAB_0009f07d;
      }
LAB_0009e154:
      pbVar20 = local_1a0;
      local_1bc = pbVar5;
    }
    local_1d4 = local_1a0;
    *pbVar20 = 0;
    for (; (*pbVar5 == 0x20 || (*pbVar5 == 9)); pbVar5 = pbVar5 + 1) {
    }
    __strcpy_chk(local_120,pbVar5,0x80);
    puVar6 = (undefined1 *)FUN_00018cc2();
    bVar25 = puVar6 != (undefined1 *)0x0;
    if (bVar25) {
      *puVar6 = 0;
    }
    local_1c8 = local_1ac;
    if (-1 < (int)local_1ac) {
      local_1d0 = (byte *)*piVar3;
      uVar21 = local_1ac;
      if (1 < (int)local_1ac) {
        do {
          local_1d0 = (byte *)FUN_0009caa8();
          uVar21 = uVar21 - 1;
        } while (uVar21 != 1);
      }
      local_1cc = (byte *)FUN_0009ca70();
    }
    if (-1 < (int)local_1a8) {
      uVar21 = local_1a8;
      if (1 < (int)local_1a8) {
        do {
          FUN_0009caa8();
          uVar21 = uVar21 - 1;
        } while (uVar21 != 1);
      }
      local_1cc = (byte *)FUN_0009ca70();
    }
    sVar7 = strlen((char *)local_1d4);
    if (sVar7 == 0) {
      if (-1 < (int)local_1ac) {
        iVar8 = *piVar3;
        if (1 < (int)local_1ac) {
          do {
            iVar8 = FUN_0009caa8();
            local_1ac = local_1ac - 1;
          } while (local_1ac != 1);
        }
        piVar3[2] = iVar8;
        FUN_0009be15();
      }
    }
    else if (local_1a0[0] == 0x21) {
      FUN_0009d5bb();
      FUN_00019f78();
      FUN_0001985b();
      iVar8 = system((char *)(local_1bc + 1));
      if (iVar8 != 0) {
        __printf_chk(1,"\nshell returned %i\n\n",iVar8,extraout_ECX);
      }
      FUN_00019903();
      *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);
LAB_0009e2b4:
      FUN_0009d8b5();
    }
    else if ((local_1a0[0] == 0x3d) && (local_1a0[1] == 0)) {
      if ((int)local_1ac < 0) {
        local_1c8 = FUN_0009caff();
      }
      FUN_0009c4a0("%d",local_1c8);
    }
    else {
      sVar15 = sVar7;
      if (7 < (int)sVar7) {
        sVar15 = 7;
      }
      bVar24 = false;
      bVar26 = true;
      pbVar5 = local_1d4;
      pbVar19 = (byte *)"delete";
      do {
        if (sVar15 == 0) break;
        sVar15 = sVar15 - 1;
        bVar24 = *pbVar5 < *pbVar19;
        bVar26 = *pbVar5 == *pbVar19;
        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
      } while (bVar26);
      if ((!bVar24 && !bVar26) == bVar24) {
        if ((int)local_1ac < 0) {
          FUN_0009cbb6();
          FUN_0009ca70();
        }
        iVar8 = FUN_0009dbfd(1);
        piVar3[2] = iVar8;
        FUN_0009be15();
      }
      else {
        sVar15 = sVar7;
        if (5 < (int)sVar7) {
          sVar15 = 5;
        }
        bVar24 = false;
        bVar26 = true;
        pbVar5 = local_1d4;
        pbVar19 = (byte *)0xcd0e4;
        do {
          if (sVar15 == 0) break;
          sVar15 = sVar15 - 1;
          bVar24 = *pbVar5 < *pbVar19;
          bVar26 = *pbVar5 == *pbVar19;
          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
        } while (bVar26);
        if ((!bVar24 && !bVar26) == bVar24) {
          if ((piVar3[5] == 0) || (bVar25)) {
            if ((local_120[0] == 0) &&
               (((char *)piVar3[0x11] == (char *)0x0 || (*(char *)piVar3[0x11] == '\0')))) {
              FUN_0009c4e0("No current filename");
            }
            else {
              iVar8 = FUN_0009df80();
              if ((uint)piVar3[0x21] < 0x1c) {
                free((void *)piVar3[piVar3[0x21] + 0x22]);
                piVar3[piVar3[0x21] + 0x22] = 0;
              }
              if ((uint)piVar3[0x20] < 0x1c) {
                free((void *)piVar3[piVar3[0x20] + 0x22]);
                piVar3[piVar3[0x20] + 0x22] = 0;
              }
              iVar12 = piVar3[1];
              iVar1 = *piVar3;
              uVar13 = FUN_0009caff();
              pcVar9 = " [Readonly]";
              if (*(char *)((int)piVar3 + 0x11) == '\0') {
                pcVar9 = "";
              }
              pcVar10 = " [New file]";
              if (-1 < iVar8) {
                pcVar10 = "";
              }
              FUN_0009c4a0("\'%s\'%s%s %dL, %dC",piVar3[0x11],pcVar10,pcVar9,uVar13,iVar12 - iVar1);
            }
            goto LAB_0009e302;
          }
LAB_0009e3d0:
          FUN_0009c4e0("No write since last change (:%s! overrides)",local_1d4);
        }
        else {
          sVar15 = sVar7;
          if (5 < (int)sVar7) {
            sVar15 = 5;
          }
          bVar24 = false;
          bVar26 = true;
          pbVar5 = local_1d4;
          pbVar19 = (byte *)0xcaef1;
          do {
            if (sVar15 == 0) break;
            sVar15 = sVar15 - 1;
            bVar24 = *pbVar5 < *pbVar19;
            bVar26 = *pbVar5 == *pbVar19;
            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
          } while (bVar26);
          if ((!bVar24 && !bVar26) == bVar24) {
            if ((local_1ac & local_1a8) == 0xffffffff) {
              if (local_120[0] == 0) {
                piVar3[0x10] = 0;
              }
              else {
                free((void *)piVar3[0x11]);
                iVar8 = FUN_00019ba3();
                piVar3[0x11] = iVar8;
              }
            }
            else {
              FUN_0009c4e0("No address allowed on this command");
            }
          }
          else {
            sVar15 = sVar7;
            if (9 < (int)sVar7) {
              sVar15 = 9;
            }
            bVar24 = false;
            bVar26 = true;
            pbVar5 = local_1d4;
            pbVar19 = (byte *)"features";
            do {
              if (sVar15 == 0) break;
              sVar15 = sVar15 - 1;
              bVar24 = *pbVar5 < *pbVar19;
              bVar26 = *pbVar5 == *pbVar19;
              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
            } while (bVar26);
            if ((!bVar24 && !bVar26) == bVar24) {
              FUN_0009d5bb();
              FUN_00019f78();
              FUN_0001985b();
              puts(
                  "These features are available:\n\tPattern searches with / and ?\n\tLast command repeat with .\n\tLine marking with \'x\n\tNamed buffers with \"x\n\tSome colon mode commands with :\n\tSettable options with \":set\"\n\tSignal catching- ^C\n\tJob suspend and resume with ^Z\n\tAdapt to window re-sizes"
                  );
              FUN_00019903();
              *(undefined1 *)(piVar3 + 0x17) = *(undefined1 *)((int)piVar3 + 0x21f);
              FUN_0009d8b5();
            }
            else {
              sVar15 = sVar7;
              if (5 < (int)sVar7) {
                sVar15 = 5;
              }
              bVar24 = false;
              bVar26 = true;
              pbVar5 = local_1d4;
              pbVar19 = (byte *)0xbda40;
              do {
                if (sVar15 == 0) break;
                sVar15 = sVar15 - 1;
                bVar24 = *pbVar5 < *pbVar19;
                bVar26 = *pbVar5 == *pbVar19;
                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
              } while (bVar26);
              if ((!bVar24 && !bVar26) == bVar24) {
                if ((int)local_1ac < 0) {
                  local_1d0 = (byte *)FUN_0009cbb6();
                  local_1cc = (byte *)FUN_0009ca70();
                }
                FUN_0009d5bb();
                puts("\r");
                puVar2 = PTR_stdout_000d0fb4;
                if (local_1cc < local_1d0) goto LAB_0009e2b4;
                do {
                  bVar27 = *local_1d0;
                  if ((char)bVar27 < '\0') {
                    if (bVar27 == 0x9b) {
                      fwrite_unlocked(&DAT_000cd025,1,4,*(FILE **)puVar2);
                      FUN_00019f93();
                      fwrite_unlocked(&DAT_000c470b,1,3,*(FILE **)puVar2);
                    }
                    else {
LAB_0009e548:
                      FUN_00019f93();
                    }
                  }
                  else if (bVar27 == 10) {
                    fwrite_unlocked(&DAT_000cd0bf,1,2,*(FILE **)puVar2);
                    FUN_00019f93();
                  }
                  else if (bVar27 < 0x20) {
                    FUN_00019f93();
                    FUN_00019f93();
                  }
                  else {
                    if (bVar27 != 0x7f) goto LAB_0009e548;
                    FUN_00019f93();
                    FUN_00019f93();
                  }
                  local_1d0 = local_1d0 + 1;
                } while (local_1d0 != local_1cc + 1);
                FUN_0009d8b5();
              }
              else {
                sVar15 = sVar7;
                if (5 < (int)sVar7) {
                  sVar15 = 5;
                }
                bVar24 = false;
                bVar26 = true;
                pbVar5 = local_1d4;
                pbVar19 = &DAT_000cd0c2;
                do {
                  if (sVar15 == 0) break;
                  sVar15 = sVar15 - 1;
                  bVar24 = *pbVar5 < *pbVar19;
                  bVar26 = *pbVar5 == *pbVar19;
                  pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                  pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                } while (bVar26);
                if ((!bVar24 && !bVar26) == bVar24) {
LAB_0009e591:
                  if (bVar25) {
                    if (local_1a0[0] == 0x71) {
                      *(int *)PTR_optind_000d0f94 = piVar3[7];
                    }
                  }
                  else {
                    if (piVar3[5] != 0) goto LAB_0009e3d0;
                    uVar21 = *(uint *)PTR_optind_000d0f94;
                    iVar8 = ~uVar21 + piVar3[7];
                    if (local_1a0[0] == 0x71) {
                      if (0 < iVar8) {
                        FUN_0009c4e0("%d more file(s) to edit",iVar8);
                        goto LAB_0009e302;
                      }
                    }
                    else if (local_1a0[0] == 0x6e) {
                      if (iVar8 < 1) {
                        FUN_0009c4e0("No more files to edit");
                        goto LAB_0009e302;
                      }
                    }
                    else if (local_1a0[0] == 0x70) {
                      if ((int)uVar21 < 1) {
                        FUN_0009c4e0("No previous files to edit");
                        goto LAB_0009e302;
                      }
                      *(uint *)PTR_optind_000d0f94 = uVar21 - 2;
                    }
                  }
                }
                else {
                  sVar15 = sVar7;
                  if (5 < (int)sVar7) {
                    sVar15 = 5;
                  }
                  bVar24 = false;
                  bVar26 = true;
                  pbVar5 = local_1d4;
                  pbVar19 = &DAT_000cd0c7;
                  do {
                    if (sVar15 == 0) break;
                    sVar15 = sVar15 - 1;
                    bVar24 = *pbVar5 < *pbVar19;
                    bVar26 = *pbVar5 == *pbVar19;
                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                  } while (bVar26);
                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;
                  sVar15 = sVar7;
                  if (5 < (int)sVar7) {
                    sVar15 = 5;
                  }
                  bVar24 = false;
                  bVar26 = true;
                  pbVar5 = local_1d4;
                  pbVar19 = &DAT_000cd0cc;
                  do {
                    if (sVar15 == 0) break;
                    sVar15 = sVar15 - 1;
                    bVar24 = *pbVar5 < *pbVar19;
                    bVar26 = *pbVar5 == *pbVar19;
                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                  } while (bVar26);
                  if ((!bVar24 && !bVar26) == bVar24) goto LAB_0009e591;
                  sVar15 = sVar7;
                  if (5 < (int)sVar7) {
                    sVar15 = 5;
                  }
                  bVar24 = false;
                  bVar26 = true;
                  pbVar5 = local_1d4;
                  pbVar19 = (byte *)0xc4379;
                  do {
                    if (sVar15 == 0) break;
                    sVar15 = sVar15 - 1;
                    bVar24 = *pbVar5 < *pbVar19;
                    bVar26 = *pbVar5 == *pbVar19;
                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                  } while (bVar26);
                  if ((!bVar24 && !bVar26) == bVar24) {
                    if (local_120[0] == 0) {
                      FUN_0009c4e0("No filename given");
                      goto LAB_0009e302;
                    }
                    if ((int)local_1ac < 0) {
                      FUN_0009cbb6();
LAB_0009ed56:
                      local_1d0 = (byte *)FUN_0009caa8();
                      if (local_1d0 == (byte *)piVar3[1] + -1) {
                        local_1d0 = (byte *)piVar3[1];
                      }
                    }
                    else if (local_1ac != 0) goto LAB_0009ed56;
                    iVar8 = *piVar3;
                    iVar12 = FUN_0009c54d();
                    if (-1 < iVar12) {
                      iVar1 = *piVar3;
                      uVar13 = FUN_0009caff();
                      pcVar9 = " [Readonly]";
                      if (*(char *)((int)piVar3 + 0x11) == '\0') {
                        pcVar9 = "";
                      }
                      FUN_0009c4a0("\'%s\'%s %dL, %dC",local_120,pcVar9,uVar13,iVar12);
                      if ((iVar12 != 0) && (local_1d0 + (iVar1 - iVar8) <= (byte *)piVar3[2])) {
                        piVar3[2] = (int)((byte *)piVar3[2] + iVar12);
                      }
                    }
                    goto LAB_0009e302;
                  }
                  sVar15 = sVar7;
                  if (7 < (int)sVar7) {
                    sVar15 = 7;
                  }
                  bVar24 = false;
                  bVar26 = true;
                  pbVar5 = local_1d4;
                  pbVar19 = (byte *)"rewind";
                  do {
                    if (sVar15 == 0) break;
                    sVar15 = sVar15 - 1;
                    bVar24 = *pbVar5 < *pbVar19;
                    bVar26 = *pbVar5 == *pbVar19;
                    pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                    pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                  } while (bVar26);
                  if ((!bVar24 && !bVar26) != bVar24) {
                    sVar15 = sVar7;
                    if (4 < (int)sVar7) {
                      sVar15 = 4;
                    }
                    bVar24 = false;
                    bVar26 = true;
                    pbVar5 = local_1d4;
                    pbVar19 = (byte *)0xc47f6;
                    do {
                      if (sVar15 == 0) break;
                      sVar15 = sVar15 - 1;
                      bVar24 = *pbVar5 < *pbVar19;
                      bVar26 = *pbVar5 == *pbVar19;
                      pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                      pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                    } while (bVar26);
                    if ((!bVar24 && !bVar26) == bVar24) {
                      if (local_120[0] != 0) {
                        iVar8 = strcasecmp((char *)local_120,"all");
                        bVar25 = iVar8 == 0;
                        if (!bVar25) {
                          local_1b4 = 0;
                          local_1d4 = local_120;
                          do {
                            bVar24 = false;
                            iVar8 = 2;
                            pbVar5 = local_1d4;
                            pbVar19 = &DAT_000c4601;
                            do {
                              if (iVar8 == 0) break;
                              iVar8 = iVar8 + -1;
                              bVar24 = *pbVar5 < *pbVar19;
                              bVar25 = *pbVar5 == *pbVar19;
                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                            } while (bVar25);
                            if ((!bVar24 && !bVar25) == bVar24) {
                              local_1b4 = 2;
                            }
                            FUN_0009c95a(&DAT_000cd14e,1);
                            FUN_0009c95a(&DAT_000cd158,8);
                            FUN_0009c95a("ic",4);
                            FUN_0009c95a(&DAT_000cd172,2);
                            bVar25 = CARRY4(local_1b4,(uint)local_1d4);
                            bVar24 = local_1d4 + local_1b4 == (byte *)0x0;
                            iVar8 = 8;
                            pbVar5 = local_1d4 + local_1b4;
                            pbVar19 = (byte *)"tabstop=";
                            do {
                              pbVar20 = pbVar19;
                              if (iVar8 == 0) break;
                              iVar8 = iVar8 + -1;
                              pbVar20 = pbVar19 + (uint)bVar27 * -2 + 1;
                              bVar25 = *pbVar5 < *pbVar19;
                              bVar24 = *pbVar5 == *pbVar19;
                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                              pbVar19 = pbVar20;
                            } while (bVar24);
                            if ((!bVar25 && !bVar24) == bVar25) {
                              local_1a4 = 0;
                              sscanf((char *)(local_1d4 + local_1b4 + 8),"%u",&local_1a4,pbVar20);
                              if (local_1a4 - 1U < 0x20) {
                                piVar3[0x15] = local_1a4;
                              }
                            }
                            FUN_00018f04();
                            local_1d4 = (byte *)FUN_00018ef1();
                            bVar25 = *local_1d4 == 0;
                          } while (!bVar25);
                          goto LAB_0009e302;
                        }
                      }
                      bVar27 = *(byte *)(piVar3 + 4);
                      puVar6 = &DAT_000cd91f;
                      if ((bVar27 & 2) == 0) {
                        puVar6 = &DAT_000c4601;
                      }
                      puVar22 = &DAT_000cd91f;
                      if ((bVar27 & 4) == 0) {
                        puVar22 = &DAT_000c4601;
                      }
                      puVar16 = &DAT_000cd91f;
                      if ((bVar27 & 8) == 0) {
                        puVar16 = &DAT_000c4601;
                      }
                      puVar18 = &DAT_000cd91f;
                      if ((bVar27 & 1) == 0) {
                        puVar18 = &DAT_000c4601;
                      }
                      FUN_0009c4e0("%sautoindent %sflash %signorecase %sshowmatch tabstop=%u",
                                   puVar18,puVar16,puVar22,puVar6,piVar3[0x15]);
                    }
                    else {
                      if (local_1a0[0] == 0x73) {
                        bVar27 = local_1bc[1];
                        pcVar9 = strchr((char *)(local_1bc + 2),(uint)bVar27);
                        if (pcVar9 != (char *)0x0) {
                          *pcVar9 = '\0';
                          pcVar10 = strchr(pcVar9 + 1,(uint)bVar27);
                          if (pcVar10 != (char *)0x0) {
                            *pcVar10 = '\0';
                            cVar14 = pcVar10[1];
                            if ((int)local_1ac < 0) {
                              FUN_0009cbb6();
                              local_1ac = FUN_0009caff();
                            }
                            else {
                              FUN_0009cbb6();
                            }
                            uVar21 = local_1ac;
                            if (((int)local_1a8 < 0) ||
                               (uVar21 = local_1a8, (int)local_1ac <= (int)local_1a8)) {
LAB_0009eafa:
                              local_1a8 = uVar21;
                              iVar8 = FUN_0009d344();
                              uVar21 = local_1a8;
                              if (iVar8 == 0) goto LAB_0009eb5a;
                              FUN_0009c26a();
                              iVar12 = FUN_0009c75e();
                              if (cVar14 == 'g') goto code_r0x0009eb3b;
                              if ((int)(local_1ac + 1) <= (int)local_1a8) goto LAB_0009eb65;
                            }
                            goto LAB_0009e302;
                          }
                        }
                        FUN_0009c4a0(":s expression missing delimiters");
                        goto LAB_0009e30a;
                      }
                      sVar15 = sVar7;
                      if (8 < (int)sVar7) {
                        sVar15 = 8;
                      }
                      bVar24 = false;
                      bVar26 = true;
                      pbVar5 = local_1d4;
                      pbVar19 = (byte *)0xcabbd;
                      do {
                        if (sVar15 == 0) break;
                        sVar15 = sVar15 - 1;
                        bVar24 = *pbVar5 < *pbVar19;
                        bVar26 = *pbVar5 == *pbVar19;
                        pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                        pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                      } while (bVar26);
                      if ((!bVar24 && !bVar26) == bVar24) {
                        FUN_0009c4a0("1.30.1");
                      }
                      else {
                        sVar15 = sVar7;
                        if (6 < (int)sVar7) {
                          sVar15 = 6;
                        }
                        bVar24 = false;
                        bVar26 = true;
                        pbVar5 = local_1d4;
                        pbVar19 = (byte *)0xc4644;
                        do {
                          if (sVar15 == 0) break;
                          sVar15 = sVar15 - 1;
                          bVar24 = *pbVar5 < *pbVar19;
                          bVar26 = *pbVar5 == *pbVar19;
                          pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                          pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                        } while (bVar26);
                        if ((!bVar24 && !bVar26) != bVar24) {
                          sVar15 = sVar7;
                          if (3 < (int)sVar7) {
                            sVar15 = 3;
                          }
                          bVar24 = false;
                          bVar26 = true;
                          pbVar5 = local_1d4;
                          pbVar19 = &DAT_000c86f9;
                          do {
                            if (sVar15 == 0) break;
                            sVar15 = sVar15 - 1;
                            bVar24 = *pbVar5 < *pbVar19;
                            bVar26 = *pbVar5 == *pbVar19;
                            pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                            pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                          } while (bVar26);
                          if ((!bVar24 && !bVar26) != bVar24) {
                            sVar15 = sVar7;
                            if (3 < (int)sVar7) {
                              sVar15 = 3;
                            }
                            bVar24 = false;
                            bVar26 = true;
                            pbVar5 = local_1d4;
                            pbVar19 = (byte *)0xc52d8;
                            do {
                              if (sVar15 == 0) break;
                              sVar15 = sVar15 - 1;
                              bVar24 = *pbVar5 < *pbVar19;
                              bVar26 = *pbVar5 == *pbVar19;
                              pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                              pbVar19 = pbVar19 + (uint)bVar27 * -2 + 1;
                            } while (bVar26);
                            if (((!bVar24 && !bVar26) != bVar24) &&
                               ((local_1a0[0] != 0x78 || (local_1a0[1] != 0)))) {
                              if (5 < (int)sVar7) {
                                sVar7 = 5;
                              }
                              bVar25 = false;
                              bVar24 = true;
                              pbVar5 = &DAT_000cd19e;
                              do {
                                if (sVar7 == 0) break;
                                sVar7 = sVar7 - 1;
                                bVar25 = *local_1d4 < *pbVar5;
                                bVar24 = *local_1d4 == *pbVar5;
                                local_1d4 = local_1d4 + (uint)bVar27 * -2 + 1;
                                pbVar5 = pbVar5 + (uint)bVar27 * -2 + 1;
                              } while (bVar24);
                              if ((!bVar25 && !bVar24) == bVar25) {
                                if ((int)local_1ac < 0) {
                                  FUN_0009cbb6();
                                  FUN_0009ca70();
                                }
                                FUN_0009be4f();
                                uVar13 = FUN_0009caff();
                                uVar21 = piVar3[0x20];
                                if (uVar21 < 0x1a) {
                                  uVar23 = uVar21 + 0x61 & 0xff;
                                }
                                else {
                                  uVar23 = 0x44;
                                  if ((uVar21 != 0x1a) && (uVar23 = 0x55, uVar21 != 0x1b)) {
                                    uVar23 = 0x44;
                                  }
                                }
                                sVar7 = strlen((char *)piVar3[uVar21 + 0x22]);
                                FUN_0009c4a0("Yank %d lines (%d chars) into [%c]",uVar13,sVar7,
                                             uVar23);
                              }
                              else {
                                FUN_0009c3ff();
                                FUN_0009c4e0("\'%s\' is not implemented",local_a0);
                              }
                              goto LAB_0009e302;
                            }
                          }
                        }
                        if (local_120[0] != 0) {
                          local_1c4 = local_120;
                        }
                        if ((*(char *)((int)piVar3 + 0x11) == '\0') || (bVar25)) {
                          if ((piVar3[5] == 0) && (local_1a0[0] == 0x78)) {
                            uVar13 = FUN_0009caff();
                            FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,0);
                            pbVar5 = (byte *)0x0;
LAB_0009ea0c:
                            if (((byte *)*piVar3 == local_1d0) &&
                               ((byte *)piVar3[1] == local_1d0 + (int)pbVar5)) {
                              piVar3[5] = 0;
                              piVar3[6] = -1;
                            }
                            if ((local_1a0[0] == 0x78) || ((local_1a0[1] & 0xdf) == 0x51)) {
                              *(undefined1 *)((int)piVar3 + 0x12) = 0;
                            }
                            else if ((local_1a0[1] & 0xdf) == 0x4e) {
                              *(undefined1 *)((int)piVar3 + 0x12) = 0;
                            }
                          }
                          else {
                            pbVar5 = (byte *)FUN_0009c9dc();
                            if ((int)pbVar5 < 0) {
                              if (pbVar5 == (byte *)0xffffffff) {
                                FUN_0009c4e0("\'%s\' %m",local_1c4);
                              }
                            }
                            else {
                              uVar13 = FUN_0009caff();
                              FUN_0009c4a0("\'%s\' %dL, %dC",local_1c4,uVar13,pbVar5);
                              if (local_1cc + (1 - (int)local_1d0) == pbVar5) goto LAB_0009ea0c;
                            }
                          }
                        }
                        else {
                          FUN_0009c4e0("\'%s\' is read only",local_1c4);
                        }
                      }
                    }
                    goto LAB_0009e302;
                  }
                  if ((piVar3[5] != 0) && (!bVar25)) goto LAB_0009e3d0;
                  *(undefined4 *)PTR_optind_000d0f94 = 0xffffffff;
                }
                *(undefined1 *)((int)piVar3 + 0x12) = 0;
              }
            }
          }
        }
      }
    }
  }
LAB_0009e302:
  iVar8 = FUN_0009e04d();
  piVar3[2] = iVar8;
LAB_0009e30a:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00017e10();
  }
  return;
code_r0x0009eb3b:
  pcVar11 = (char *)FUN_0009ca70();
  if (pcVar11 <= pcVar10 + iVar8 + (iVar12 - (int)(pcVar9 + 1))) {
LAB_0009eb5a:
    if ((int)local_1a8 < (int)(local_1ac + 1)) goto LAB_0009e302;
LAB_0009eb65:
    local_1ac = local_1ac + 1;
    FUN_0009caa8();
  }
  goto LAB_0009eafa;
}

