
int main(int argc,char **argv)

{
  char cVar1;
  uint uVar2;
  undefined *puVar3;
  undefined *puVar4;
  char *pcVar5;
  undefined4 uVar6;
  int iVar7;
  uint uVar8;
  EVP_PKEY_CTX *ctx;
  void *prev;
  uint uVar9;
  int *piVar10;
  char **ppcVar11;
  int iVar12;
  undefined *puVar13;
  void *pvVar14;
  code *pcVar15;
  POSITION PVar16;
  
  puVar4 = PTR_secure_0004ec48;
  puVar13 = PTR_progname_0004ec44;
  puVar3 = PTR_LAB_0004ec08;
  iVar12 = argc + -1;
  ppcVar11 = argv + 1;
  *(char **)PTR_progname_0004ec44 = *argv;
  *(undefined4 *)puVar4 = 0;
  pcVar5 = lgetenv(puVar3 + 0x6894);
  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {
    *(undefined4 *)puVar4 = 1;
  }
  puVar3 = PTR_is_tty_0004ec20;
  uVar6 = (*(code *)PTR_isatty_0004f294)(1);
  *(undefined4 *)puVar3 = uVar6;
  get_term();
  init_cmds();
  init_charset();
  init_line();
  init_cmdhist();
  init_option();
  init_search();
  uVar9 = *(uint *)puVar13;
  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar9);
  uVar8 = uVar9 + iVar7;
  if (uVar9 < uVar8) {
    cVar1 = *(char *)(uVar8 - 1);
    uVar2 = uVar8;
    while ((uVar8 = uVar2, cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8))) {
      cVar1 = *(char *)(uVar2 - 2);
      uVar2 = uVar8;
    }
  }
  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar8,PTR_LAB_0004ec08 + 0x68a0);
  piVar10 = (int *)PTR_less_is_more_0004ec68;
  if (iVar7 == 0) goto LAB_00015528;
  do {
    init_prompt();
    if (*piVar10 == 0) {
      pcVar5 = PTR_LAB_0004ec08 + 0x688c;
    }
    else {
      pcVar5 = PTR_LAB_0004ec08 + 0x68b0;
    }
    pcVar5 = lgetenv(pcVar5);
    if (pcVar5 != (char *)0x0) {
      pcVar5 = save(pcVar5);
      scan_option(pcVar5);
    }
    if (0 < iVar12) {
      puVar13 = PTR_LAB_0004ec08 + 0x68b8;
      do {
        pcVar5 = *ppcVar11;
        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {
          iVar7 = isoptpending();
          if (iVar7 == 0) break;
          pcVar5 = *ppcVar11;
        }
        ppcVar11 = ppcVar11 + 1;
        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);
        iVar12 = iVar12 + -1;
        if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;
      } while( true );
    }
    iVar7 = isoptpending();
    pcVar15 = (code *)PTR_nopendopt_0004ec7c;
    if (iVar7 == 0) goto LAB_00015348;
LAB_00015330:
    (*pcVar15)();
    quit(0);
LAB_00015348:
    puVar13 = PTR_editor_0004ec80;
    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68bc);
    *(char **)puVar13 = pcVar5;
    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {
      pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68c4);
      *(char **)puVar13 = pcVar5;
      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {
        *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;
      }
    }
    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68dc);
    puVar13 = PTR_editproto_0004ec84;
    *(char **)PTR_editproto_0004ec84 = pcVar5;
    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {
      *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68e8;
    }
    prev = (void *)0x0;
    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;
    pvVar14 = (void *)0x0;
    while( true ) {
      iVar7 = iVar12 + -1;
      if (iVar12 < 1) {
        iVar7 = *(int *)puVar3;
      }
      else {
        do {
          prev = pvVar14;
          pcVar5 = shell_quote(*ppcVar11);
          if (pcVar5 == (char *)0x0) {
            pcVar5 = *ppcVar11;
          }
          iVar7 = iVar7 + -1;
          get_ifile(pcVar5,prev);
          ppcVar11 = ppcVar11 + 1;
          pvVar14 = prev_ifile((void *)0x0);
          (*(code *)PTR_free_0004f37c)(pcVar5);
        } while (iVar7 != -1);
        iVar7 = *(int *)puVar3;
      }
      if (iVar7 != 0) break;
      iVar7 = nifile();
      if (iVar7 == 0) {
        iVar7 = edit_stdin();
        if (iVar7 == 0) {
          cat_file();
        }
      }
      else {
        iVar7 = edit_first();
        while (iVar7 == 0) {
          cat_file();
          iVar7 = edit_next(1);
        }
      }
      quit(0);
LAB_00015654:
      pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev);
    }
    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {
      error(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0);
    }
    puVar13 = PTR_tagoption_0004eca4;
    init_mark();
    open_getchr();
    raw_mode(1);
    init_signals(1);
    if (*(int *)puVar13 == 0) {
      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;
      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);
      if (iVar7 == 0) goto LAB_000154f0;
      iVar7 = nifile();
      if (iVar7 == 0) {
        iVar7 = edit_stdin();
      }
      else {
        iVar7 = edit_first();
      }
      if (iVar7 != 0) goto LAB_0001559c;
      goto LAB_000155f8;
    }
LAB_000154f0:
    iVar7 = nifile();
    if (iVar7 < 1) {
      do {
        findtag(*(char **)puVar13);
        iVar7 = edit_tagfile();
        if (iVar7 == 0) {
          PVar16 = tagsearch();
          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;
          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;
          if (PVar16 != -1) goto LAB_000155f0;
        }
LAB_0001559c:
        quit(1);
      } while( true );
    }
    error(PTR_LAB_0004ec08 + 0x6940,(PARG *)0x0);
    quit(1);
LAB_00015528:
    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);
    piVar10 = (int *)PTR_less_is_more_0004ec68;
    if (pcVar5 == (char *)0x0) {
      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;
    }
  } while( true );
LAB_000155f0:
  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;
LAB_000155f8:
  init(ctx);
  pcVar15 = (code *)PTR_commands_0004ecd4;
  goto LAB_00015330;
}



void main(int param_1,undefined4 *param_2)

{
  char cVar1;
  uint uVar2;
  undefined *puVar3;
  undefined *puVar4;
  char *pcVar5;
  undefined4 uVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  undefined *puVar10;
  EVP_PKEY_CTX *ctx;
  uint uVar11;
  int *piVar12;
  int *piVar13;
  code *pcVar14;
  longlong lVar15;
  
  puVar4 = PTR_secure_0004ec48;
  puVar10 = PTR_progname_0004ec44;
  puVar3 = PTR_LAB_0004ec08;
  param_1 = param_1 + -1;
  piVar13 = param_2 + 1;
  *(undefined4 *)PTR_progname_0004ec44 = *param_2;
  *(undefined4 *)puVar4 = 0;
  pcVar5 = (char *)lgetenv(puVar3 + 0x6894);
  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {
    *(undefined4 *)puVar4 = 1;
  }
  puVar3 = PTR_is_tty_0004ec20;
  uVar6 = (*(code *)PTR_isatty_0004f294)(1);
  *(undefined4 *)puVar3 = uVar6;
  get_term();
  init_cmds();
  init_charset();
  init_line();
  init_cmdhist();
  init_option();
  init_search();
  uVar11 = *(uint *)puVar10;
  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);
  uVar9 = uVar11 + iVar7;
  if (uVar11 < uVar9) {
    cVar1 = *(char *)(uVar9 - 1);
    uVar2 = uVar9;
    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {
      cVar1 = *(char *)(uVar2 - 2);
      uVar2 = uVar9;
    }
  }
  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);
  piVar12 = (int *)PTR_less_is_more_0004ec68;
  if (iVar7 == 0) goto LAB_00015528;
  do {
    init_prompt();
    if (*piVar12 == 0) {
      puVar10 = PTR_LAB_0004ec08 + 0x688c;
    }
    else {
      puVar10 = PTR_LAB_0004ec08 + 0x68b0;
    }
    iVar7 = lgetenv(puVar10);
    if (iVar7 != 0) {
      uVar6 = save(iVar7);
      scan_option(uVar6);
    }
    if (0 < param_1) {
      puVar10 = PTR_LAB_0004ec08 + 0x68b8;
      do {
        pcVar5 = (char *)*piVar13;
        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {
          iVar7 = isoptpending();
          if (iVar7 == 0) break;
          pcVar5 = (char *)*piVar13;
        }
        piVar13 = piVar13 + 1;
        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);
        param_1 = param_1 + -1;
        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;
      } while( true );
    }
    iVar7 = isoptpending();
    pcVar14 = (code *)PTR_nopendopt_0004ec7c;
    if (iVar7 == 0) goto LAB_00015348;
LAB_00015330:
    (*pcVar14)();
    quit(0);
LAB_00015348:
    puVar10 = PTR_editor_0004ec80;
    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);
    *(char **)puVar10 = pcVar5;
    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {
      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);
      *(char **)puVar10 = pcVar5;
      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {
        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;
      }
    }
    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);
    puVar10 = PTR_editproto_0004ec84;
    *(char **)PTR_editproto_0004ec84 = pcVar5;
    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {
      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;
    }
    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;
    uVar6 = 0;
    while( true ) {
      iVar7 = param_1 + -1;
      if (param_1 < 1) {
        iVar7 = *(int *)puVar3;
      }
      else {
        do {
          iVar8 = shell_quote(*piVar13);
          if (iVar8 == 0) {
            iVar8 = *piVar13;
          }
          iVar7 = iVar7 + -1;
          get_ifile(iVar8,uVar6);
          piVar13 = piVar13 + 1;
          uVar6 = prev_ifile(0);
          (*(code *)PTR_free_0004f37c)(iVar8);
        } while (iVar7 != -1);
        iVar7 = *(int *)puVar3;
      }
      if (iVar7 != 0) break;
      iVar7 = nifile();
      if (iVar7 == 0) {
        iVar7 = edit_stdin();
        if (iVar7 == 0) {
          cat_file();
        }
      }
      else {
        iVar7 = edit_first();
        while (iVar7 == 0) {
          cat_file();
          iVar7 = edit_next(1);
        }
      }
      quit(0);
LAB_00015654:
      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);
    }
    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {
      error(PTR_LAB_0004ec08 + 0x6910,0);
    }
    puVar10 = PTR_tagoption_0004eca4;
    init_mark();
    open_getchr();
    raw_mode(1);
    init_signals(1);
    if (*(int *)puVar10 == 0) {
      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;
      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);
      if (iVar7 == 0) goto LAB_000154f0;
      iVar7 = nifile();
      if (iVar7 == 0) {
        iVar7 = edit_stdin();
      }
      else {
        iVar7 = edit_first();
      }
      if (iVar7 != 0) goto LAB_0001559c;
      goto LAB_000155f8;
    }
LAB_000154f0:
    iVar7 = nifile();
    if (iVar7 < 1) {
      do {
        findtag(*(undefined4 *)puVar10);
        iVar7 = edit_tagfile();
        if (iVar7 == 0) {
          lVar15 = tagsearch();
          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;
          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;
          if (lVar15 != -1) goto LAB_000155f0;
        }
LAB_0001559c:
        quit(1);
      } while( true );
    }
    error(PTR_LAB_0004ec08 + 0x6940,0);
    quit(1);
LAB_00015528:
    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);
    piVar12 = (int *)PTR_less_is_more_0004ec68;
    if (iVar7 == 0) {
      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;
    }
  } while( true );
LAB_000155f0:
  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;
LAB_000155f8:
  init(ctx);
  pcVar14 = (code *)PTR_commands_0004ecd4;
  goto LAB_00015330;
}


lui gp,0x4
addiu gp,gp,0x1b10
addu gp,gp,t9
addiu sp,sp,-0x38
lw v0,0x0(a1)
lw t9,-0x7f90(gp)
sw s3,0x24(sp)
sw s2,0x20(sp)
addiu s2,a0,-0x1
sw s0,0x18(sp)
sw gp,0x10(sp)
sw s1,0x1c(sp)
addiu s1,a1,0x4
sw ra,0x34(sp)
sw s6,0x30(sp)
sw s5,0x2c(sp)
sw s4,0x28(sp)
lw s0,-0x7f8c(gp)
lw s3,-0x7f88(gp)
lw a0,-0x7fc8(gp)
sw v0,0x0(s0)
addiu a0,a0,0x6894
bal 0x00021284
_sw zero,0x0(s3)
beq v0,zero,0x00015134
_lw gp,0x10(sp)
lb v0,0x0(v0)
bne v0,zero,0x00015310
_li v0,0x1
lw t9,-0x793c(gp)
lw s5,-0x7fb0(gp)
jalr t9
_li a0,0x1
lw gp,0x10(sp)
lw t9,-0x7f84(gp)
bal 0x00016724
_sw v0,0x0(s5)
lw gp,0x10(sp)
lw t9,-0x7f80(gp)
bal 0x000214d4
_nop
lw gp,0x10(sp)
lw t9,-0x7f7c(gp)
bal 0x00019730
_nop
lw gp,0x10(sp)
lw t9,-0x7f78(gp)
bal 0x00027700
_nop
lw gp,0x10(sp)
lw t9,-0x7f74(gp)
bal 0x0001ce3c
_nop
lw gp,0x10(sp)
lw t9,-0x7f70(gp)
bal 0x0002db00
_nop
lw gp,0x10(sp)
lw t9,-0x7f6c(gp)
bal 0x00031444
_nop
lw gp,0x10(sp)
lw s0,0x0(s0)
lw t9,-0x78c4(gp)
jalr t9
_or a0,s0,zero
addu a0,s0,v0
sltu v0,s0,a0
beq v0,zero,0x00015208
_lw gp,0x10(sp)
lb v1,-0x1(a0)
li v0,0x2f
beq v1,v0,0x00015208
_li v1,0x2f
b 0x00015200
_addiu a0,a0,-0x1
lb v0,-0x1(a0)
beq v0,v1,0x0001520c
_lw a1,-0x7fc8(gp)
addiu a0,a0,-0x1
bne s0,a0,0x000151f0
_nop
lw a1,-0x7fc8(gp)
lw t9,-0x7834(gp)
jalr t9
_addiu a1,a1,0x68a0
beq v0,zero,0x00015528
_lw gp,0x10(sp)
lw s0,-0x7f68(gp)
lw t9,-0x7f64(gp)
bal 0x000306ec
_nop
lw v0,0x0(s0)
bne v0,zero,0x00015304
_lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
addiu a0,a0,0x688c
lw t9,-0x7f90(gp)
bal 0x00021284
_nop
beq v0,zero,0x00015278
_lw gp,0x10(sp)
lw t9,-0x7f60(gp)
bal 0x00015ae8
_or a0,v0,zero
lw gp,0x10(sp)
lw t9,-0x7f5c(gp)
bal 0x0002ced8
_or a0,v0,zero
lw gp,0x10(sp)
blez s2,0x00015318
_lw s3,-0x7fc8(gp)
li s4,0x2d
li s6,0x2b
b 0x000152e0
_addiu s3,s3,0x68b8
beq v0,s6,0x000152f0
_lw t9,-0x7f58(gp)
bal 0x0002ccdc
_nop
beq v0,zero,0x00015318
_lw gp,0x10(sp)
lw s0,0x0(s1)
lw t9,-0x7834(gp)
or a1,s3,zero
or a0,s0,zero
jalr t9
_addiu s1,s1,0x4
addiu s2,s2,-0x1
beq v0,zero,0x00015318
_lw gp,0x10(sp)
lw t9,-0x7f5c(gp)
bal 0x0002ced8
_or a0,s0,zero
beq s2,zero,0x00015318
_lw gp,0x10(sp)
lw s0,0x0(s1)
lb v0,0x0(s0)
bne v0,s4,0x00015290
_nop
lb v0,0x1(s0)
bne v0,zero,0x000152ac
_lw t9,-0x7f58(gp)
b 0x00015298
_nop
lw a0,-0x7fc8(gp)
b 0x00015244
_addiu a0,a0,0x68b0
b 0x00015134
_sw v0,0x0(s3)
lw t9,-0x7f58(gp)
bal 0x0002ccdc
_nop
beq v0,zero,0x00015348
_lw gp,0x10(sp)
lw t9,-0x7f54(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw t9,-0x7f98(gp)
bal 0x000159ac
_or a0,zero,zero
lw a0,-0x7fc8(gp)
lw t9,-0x7f90(gp)
lw s0,-0x7f50(gp)
bal 0x00021284
_addiu a0,a0,0x68bc
lw gp,0x10(sp)
beq v0,zero,0x00015374
_sw v0,0x0(s0)
lb v0,0x0(v0)
bne v0,zero,0x0001539c
_nop
lw a0,-0x7fc8(gp)
lw t9,-0x7f90(gp)
bal 0x00021284
_addiu a0,a0,0x68c4
lw gp,0x10(sp)
beq v0,zero,0x00015610
_sw v0,0x0(s0)
lb v0,0x0(v0)
beq v0,zero,0x00015614
_lw v0,-0x7fc8(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x7f90(gp)
bal 0x00021284
_addiu a0,a0,0x68dc
lw gp,0x10(sp)
lw v1,-0x7f4c(gp)
beq v0,zero,0x00015454
_sw v0,0x0(v1)
lb v0,0x0(v0)
beq v0,zero,0x00015458
_lw v0,-0x7fc8(gp)
lw v0,-0x7f48(gp)
lw v0,0x0(v0)
bne v0,zero,0x00015654
_or a1,zero,zero
or s4,zero,zero
addiu s3,s2,-0x1
bgtz s2,0x00015434
_li s6,-0x1
b 0x00015468
_lw v0,0x0(s5)
lw t9,-0x7f44(gp)
or a1,s4,zero
or a0,s0,zero
bal 0x00025840
_addiu s3,s3,-0x1
or a0,zero,zero
lw gp,0x10(sp)
lw t9,-0x7f40(gp)
bal 0x0002579c
_addiu s1,s1,0x4
or a0,s0,zero
lw gp,0x10(sp)
lw t9,-0x7854(gp)
jalr t9
_or s4,v0,zero
beq s3,s6,0x00015464
_lw gp,0x10(sp)
lw t9,-0x7f3c(gp)
bal 0x00023090
_lw a0,0x0(s1)
lw gp,0x10(sp)
bne v0,zero,0x000153f0
_or s0,v0,zero
b 0x000153f0
_lw s0,0x0(s1)
lw v0,-0x7fc8(gp)
addiu v0,v0,0x68e8
b 0x000153c8
_sw v0,0x0(v1)
lw v0,0x0(s5)
beq v0,zero,0x00015620
_lw v0,-0x7f38(gp)
lw v0,0x0(v0)
beq v0,zero,0x000154a8
_lw t9,-0x7f34(gp)
lw v0,-0x7f30(gp)
lw v0,0x0(v0)
bne v0,zero,0x000154ac
_lw s0,-0x7f2c(gp)
lw a0,-0x7fc8(gp)
or a1,zero,zero
lw t9,-0x7f9c(gp)
bal 0x0002ea34
_addiu a0,a0,0x6910
lw gp,0x10(sp)
lw t9,-0x7f34(gp)
lw s0,-0x7f2c(gp)
bal 0x0002b3ac
_nop
lw gp,0x10(sp)
lw t9,-0x7f28(gp)
bal 0x00034e00
_nop
lw gp,0x10(sp)
lw t9,-0x7fa4(gp)
bal 0x000160ac
_li a0,0x1
lw gp,0x10(sp)
lw t9,-0x7f24(gp)
bal 0x00033934
_li a0,0x1
lw v0,0x0(s0)
beq v0,zero,0x00015550
_lw gp,0x10(sp)
lw t9,-0x7f20(gp)
bal 0x00025828
_nop
blez v0,0x000155a4
_lw gp,0x10(sp)
lw a0,-0x7fc8(gp)
or a1,zero,zero
lw t9,-0x7f9c(gp)
bal 0x0002ea34
_addiu a0,a0,0x6940
lw gp,0x10(sp)
lw t9,-0x7f98(gp)
bal 0x000159ac
_li a0,0x1
lw a0,-0x7fc8(gp)
lw t9,-0x7f90(gp)
bal 0x00021284
_addiu a0,a0,0x68a8
lw gp,0x10(sp)
bne v0,zero,0x00015224
_lw s0,-0x7f68(gp)
li v0,0x1
b 0x00015224
_sw v0,0x0(s0)
lw v0,-0x7f1c(gp)
lw a1,-0x7fc8(gp)
lw t9,-0x7834(gp)
lw a0,0x0(v0)
jalr t9
_addiu a1,a1,0x693c
beq v0,zero,0x000154f0
_lw gp,0x10(sp)
lw t9,-0x7f20(gp)
bal 0x00025828
_nop
bne v0,zero,0x000156b0
_lw gp,0x10(sp)
lw t9,-0x7f18(gp)
bal 0x0002264c
_nop
beq v0,zero,0x000155f8
_lw gp,0x10(sp)
lw t9,-0x7f98(gp)
bal 0x000159ac
_li a0,0x1
lw t9,-0x7f14(gp)
bal 0x00034954
_lw a0,0x0(s0)
lw gp,0x10(sp)
lw t9,-0x7f10(gp)
bal 0x00034dd4
_nop
bne v0,zero,0x00015598
_lw gp,0x10(sp)
lw t9,-0x7f0c(gp)
bal 0x00034a2c
_nop
li a1,-0x1
lw gp,0x10(sp)
lw a0,-0x7f08(gp)
sw v0,0x0(a0)
beq v0,a1,0x000156cc
_sw v1,0x4(a0)
lw v0,-0x7f04(gp)
lw v0,0x0(v0)
sw v0,0x8(a0)
lw t9,-0x7f00(gp)
bal 0x00017038
_nop
lw gp,0x10(sp)
b 0x00015330
_lw t9,-0x7efc(gp)
lw v0,-0x7fc8(gp)
addiu v0,v0,0x68cc
b 0x0001539c
_sw v0,0x0(s0)
lw t9,-0x7f20(gp)
bal 0x00025828
_nop
bne v0,zero,0x00015670
_lw gp,0x10(sp)
lw t9,-0x7f18(gp)
bal 0x0002264c
_nop
beq v0,zero,0x000156dc
_lw gp,0x10(sp)
lw t9,-0x7f98(gp)
bal 0x000159ac
_or a0,zero,zero
lw a0,-0x7fc8(gp)
lw t9,-0x7f44(gp)
bal 0x00025840
_addiu a0,a0,0x68f8
lw gp,0x10(sp)
b 0x000153dc
_or s4,v0,zero
lw t9,-0x7ef8(gp)
bal 0x00022828
_nop
bne v0,zero,0x00015648
_lw gp,0x10(sp)
lw t9,-0x7ef4(gp)
bal 0x00021c68
_nop
lw gp,0x10(sp)
lw t9,-0x7ef0(gp)
bal 0x00022800
_li a0,0x1
beq v0,zero,0x00015684
_lw gp,0x10(sp)
b 0x0001564c
_lw t9,-0x7f98(gp)
lw t9,-0x7ef8(gp)
bal 0x00022828
_nop
beq v0,zero,0x000155f8
_lw gp,0x10(sp)
b 0x0001559c
_lw t9,-0x7f98(gp)
bne v1,v0,0x000155f0
_lw v0,-0x7f04(gp)
b 0x0001559c
_lw t9,-0x7f98(gp)
lw t9,-0x7ef4(gp)
bal 0x00021c68
_nop
b 0x00015648
_lw gp,0x10(sp)
(translation_unit "void main(int param_1,undefined4 *param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined *puVar10;\n  EVP_PKEY_CTX *ctx;\n  uint uVar11;\n  int *piVar12;\n  int *piVar13;\n  code *pcVar14;\n  longlong lVar15;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar10 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  param_1 = param_1 + -1;\n  piVar13 = param_2 + 1;\n  *(undefined4 *)PTR_progname_0004ec44 = *param_2;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = (char *)lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar11 = *(uint *)puVar10;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);\n  uVar9 = uVar11 + iVar7;\n  if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);\n  piVar12 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar14 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}\n\n" (function_definition "void main(int param_1,undefined4 *param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined *puVar10;\n  EVP_PKEY_CTX *ctx;\n  uint uVar11;\n  int *piVar12;\n  int *piVar13;\n  code *pcVar14;\n  longlong lVar15;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar10 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  param_1 = param_1 + -1;\n  piVar13 = param_2 + 1;\n  *(undefined4 *)PTR_progname_0004ec44 = *param_2;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = (char *)lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar11 = *(uint *)puVar10;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);\n  uVar9 = uVar11 + iVar7;\n  if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);\n  piVar12 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar14 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}" primitive_type (function_declarator "main(int param_1,undefined4 *param_2)" identifier (parameter_list "(int param_1,undefined4 *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined *puVar10;\n  EVP_PKEY_CTX *ctx;\n  uint uVar11;\n  int *piVar12;\n  int *piVar13;\n  code *pcVar14;\n  longlong lVar15;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar10 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  param_1 = param_1 + -1;\n  piVar13 = param_2 + 1;\n  *(undefined4 *)PTR_progname_0004ec44 = *param_2;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = (char *)lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar11 = *(uint *)puVar10;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);\n  uVar9 = uVar11 + iVar7;\n  if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);\n  piVar12 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar14 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "EVP_PKEY_CTX *ctx;" type_identifier (pointer_declarator "*ctx" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "longlong lVar15;" type_identifier identifier ;) (expression_statement "puVar4 = PTR_secure_0004ec48;" (assignment_expression "puVar4 = PTR_secure_0004ec48" identifier = identifier) ;) (expression_statement "puVar10 = PTR_progname_0004ec44;" (assignment_expression "puVar10 = PTR_progname_0004ec44" identifier = identifier) ;) (expression_statement "puVar3 = PTR_LAB_0004ec08;" (assignment_expression "puVar3 = PTR_LAB_0004ec08" identifier = identifier) ;) (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 "piVar13 = param_2 + 1;" (assignment_expression "piVar13 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)PTR_progname_0004ec44 = *param_2;" (assignment_expression "*(undefined4 *)PTR_progname_0004ec44 = *param_2" (pointer_expression "*(undefined4 *)PTR_progname_0004ec44" * (cast_expression "(undefined4 *)PTR_progname_0004ec44" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*(undefined4 *)puVar4 = 0;" (assignment_expression "*(undefined4 *)puVar4 = 0" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pcVar5 = (char *)lgetenv(puVar3 + 0x6894);" (assignment_expression "pcVar5 = (char *)lgetenv(puVar3 + 0x6894)" identifier = (cast_expression "(char *)lgetenv(puVar3 + 0x6894)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "lgetenv(puVar3 + 0x6894)" identifier (argument_list "(puVar3 + 0x6894)" ( (binary_expression "puVar3 + 0x6894" identifier + number_literal) ))))) ;) (if_statement "if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }" if (parenthesized_expression "((pcVar5 != (char *)0x0) && (*pcVar5 != '\0'))" ( (binary_expression "(pcVar5 != (char *)0x0) && (*pcVar5 != '\0')" (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar5 != '\0')" ( (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    *(undefined4 *)puVar4 = 1;\n  }" { (expression_statement "*(undefined4 *)puVar4 = 1;" (assignment_expression "*(undefined4 *)puVar4 = 1" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (expression_statement "puVar3 = PTR_is_tty_0004ec20;" (assignment_expression "puVar3 = PTR_is_tty_0004ec20" identifier = identifier) ;) (expression_statement "uVar6 = (*(code *)PTR_isatty_0004f294)(1);" (assignment_expression "uVar6 = (*(code *)PTR_isatty_0004f294)(1)" identifier = (call_expression "(*(code *)PTR_isatty_0004f294)(1)" (parenthesized_expression "(*(code *)PTR_isatty_0004f294)" ( (pointer_expression "*(code *)PTR_isatty_0004f294" * (cast_expression "(code *)PTR_isatty_0004f294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)puVar3 = uVar6;" (assignment_expression "*(undefined4 *)puVar3 = uVar6" (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "get_term();" (call_expression "get_term()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_cmds();" (call_expression "init_cmds()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_charset();" (call_expression "init_charset()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_line();" (call_expression "init_line()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_cmdhist();" (call_expression "init_cmdhist()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_option();" (call_expression "init_option()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_search();" (call_expression "init_search()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = *(uint *)puVar10;" (assignment_expression "uVar11 = *(uint *)puVar10" identifier = (pointer_expression "*(uint *)puVar10" * (cast_expression "(uint *)puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);" (assignment_expression "iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11)" identifier = (call_expression "(*(code *)PTR_strlen_0004f30c)(uVar11)" (parenthesized_expression "(*(code *)PTR_strlen_0004f30c)" ( (pointer_expression "*(code *)PTR_strlen_0004f30c" * (cast_expression "(code *)PTR_strlen_0004f30c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11)" ( identifier )))) ;) (expression_statement "uVar9 = uVar11 + iVar7;" (assignment_expression "uVar9 = uVar11 + iVar7" identifier = (binary_expression "uVar11 + iVar7" identifier + identifier)) ;) (if_statement "if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }" if (parenthesized_expression "(uVar11 < uVar9)" ( (binary_expression "uVar11 < uVar9" identifier < identifier) )) (compound_statement "{\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }" { (expression_statement "cVar1 = *(char *)(uVar9 - 1);" (assignment_expression "cVar1 = *(char *)(uVar9 - 1)" identifier = (pointer_expression "*(char *)(uVar9 - 1)" * (cast_expression "(char *)(uVar9 - 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 - 1)" ( (binary_expression "uVar9 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" identifier = identifier) ;) (while_statement "while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }" while (parenthesized_expression "((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9)))" ( (parenthesized_expression "(uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))" ( (comma_expression "uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9)" (assignment_expression "uVar9 = uVar2" identifier = identifier) , (binary_expression "cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9)" (binary_expression "cVar1 != '/'" identifier != (char_literal "'/'" ' character ')) && (parenthesized_expression "(uVar9 = uVar2 - 1, uVar11 != uVar9)" ( (comma_expression "uVar9 = uVar2 - 1, uVar11 != uVar9" (assignment_expression "uVar9 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) , (binary_expression "uVar11 != uVar9" identifier != identifier)) )))) )) )) (compound_statement "{\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }" { (expression_statement "cVar1 = *(char *)(uVar2 - 2);" (assignment_expression "cVar1 = *(char *)(uVar2 - 2)" identifier = (pointer_expression "*(char *)(uVar2 - 2)" * (cast_expression "(char *)(uVar2 - 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 - 2)" ( (binary_expression "uVar2 - 2" identifier - number_literal) ))))) ;) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" identifier = identifier) ;) })) })) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0)" identifier = (call_expression "(*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" ( (pointer_expression "*(code *)PTR_strcmp_0004f39c" * (cast_expression "(code *)PTR_strcmp_0004f39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9,PTR_LAB_0004ec08 + 0x68a0)" ( identifier , (binary_expression "PTR_LAB_0004ec08 + 0x68a0" identifier + number_literal) )))) ;) (expression_statement "piVar12 = (int *)PTR_less_is_more_0004ec68;" (assignment_expression "piVar12 = (int *)PTR_less_is_more_0004ec68" identifier = (cast_expression "(int *)PTR_less_is_more_0004ec68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar7 == 0) goto LAB_00015528;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015528;" goto statement_identifier ;)) (do_statement "do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );" do (compound_statement "{\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  }" { (expression_statement "init_prompt();" (call_expression "init_prompt()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }" if (parenthesized_expression "(*piVar12 == 0)" ( (binary_expression "*piVar12 == 0" (pointer_expression "*piVar12" * identifier) == number_literal) )) (compound_statement "{\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }" { (expression_statement "puVar10 = PTR_LAB_0004ec08 + 0x688c;" (assignment_expression "puVar10 = PTR_LAB_0004ec08 + 0x688c" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x688c" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }" else (compound_statement "{\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }" { (expression_statement "puVar10 = PTR_LAB_0004ec08 + 0x68b0;" (assignment_expression "puVar10 = PTR_LAB_0004ec08 + 0x68b0" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x68b0" identifier + number_literal)) ;) }))) (expression_statement "iVar7 = lgetenv(puVar10);" (assignment_expression "iVar7 = lgetenv(puVar10)" identifier = (call_expression "lgetenv(puVar10)" identifier (argument_list "(puVar10)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }" { (expression_statement "uVar6 = save(iVar7);" (assignment_expression "uVar6 = save(iVar7)" identifier = (call_expression "save(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "scan_option(uVar6);" (call_expression "scan_option(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) (if_statement "if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }" if (parenthesized_expression "(0 < param_1)" ( (binary_expression "0 < param_1" number_literal < identifier) )) (compound_statement "{\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }" { (expression_statement "puVar10 = PTR_LAB_0004ec08 + 0x68b8;" (assignment_expression "puVar10 = PTR_LAB_0004ec08 + 0x68b8" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x68b8" identifier + number_literal)) ;) (do_statement "do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );" do (compound_statement "{\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      }" { (expression_statement "pcVar5 = (char *)*piVar13;" (assignment_expression "pcVar5 = (char *)*piVar13" identifier = (cast_expression "(char *)*piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (if_statement "if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }" if (parenthesized_expression "(((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0'))" ( (binary_expression "((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')" (parenthesized_expression "((*pcVar5 != '-') && (*pcVar5 != '+'))" ( (binary_expression "(*pcVar5 != '-') && (*pcVar5 != '+')" (parenthesized_expression "(*pcVar5 != '-')" ( (binary_expression "*pcVar5 != '-'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(*pcVar5 != '+')" ( (binary_expression "*pcVar5 != '+'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'+'" ' character ')) ))) )) || (parenthesized_expression "(pcVar5[1] == '\0')" ( (binary_expression "pcVar5[1] == '\0'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }" { (expression_statement "iVar7 = isoptpending();" (assignment_expression "iVar7 = isoptpending()" identifier = (call_expression "isoptpending()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar5 = (char *)*piVar13;" (assignment_expression "pcVar5 = (char *)*piVar13" identifier = (cast_expression "(char *)*piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) })) (expression_statement "piVar13 = piVar13 + 1;" (assignment_expression "piVar13 = piVar13 + 1" identifier = (binary_expression "piVar13 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10)" identifier = (call_expression "(*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" ( (pointer_expression "*(code *)PTR_strcmp_0004f39c" * (cast_expression "(code *)PTR_strcmp_0004f39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5,puVar10)" ( identifier , identifier )))) ;) (expression_statement "param_1 = param_1 + -1;" (assignment_expression "param_1 = param_1 + -1" identifier = (binary_expression "param_1 + -1" identifier + number_literal)) ;) (if_statement "if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;" if (parenthesized_expression "((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0))" ( (binary_expression "(iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(scan_option(pcVar5), param_1 == 0)" ( (comma_expression "scan_option(pcVar5), param_1 == 0" (call_expression "scan_option(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) , (binary_expression "param_1 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar7 = isoptpending();" (assignment_expression "iVar7 = isoptpending()" identifier = (call_expression "isoptpending()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar14 = (code *)PTR_nopendopt_0004ec7c;" (assignment_expression "pcVar14 = (code *)PTR_nopendopt_0004ec7c" identifier = (cast_expression "(code *)PTR_nopendopt_0004ec7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar7 == 0) goto LAB_00015348;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015348;" goto statement_identifier ;)) (labeled_statement "LAB_00015330:\n    (*pcVar14)();" statement_identifier : (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "quit(0);" (call_expression "quit(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_00015348:\n    puVar10 = PTR_editor_0004ec80;" statement_identifier : (expression_statement "puVar10 = PTR_editor_0004ec80;" (assignment_expression "puVar10 = PTR_editor_0004ec80" identifier = identifier) ;)) (expression_statement "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);" (assignment_expression "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc)" identifier = (cast_expression "(char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68bc)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68bc)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68bc" identifier + number_literal) ))))) ;) (expression_statement "*(char **)puVar10 = pcVar5;" (assignment_expression "*(char **)puVar10 = pcVar5" (pointer_expression "*(char **)puVar10" * (cast_expression "(char **)puVar10" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }" if (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" ( (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }" { (expression_statement "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);" (assignment_expression "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4)" identifier = (cast_expression "(char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68c4)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68c4)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68c4" identifier + number_literal) ))))) ;) (expression_statement "*(char **)puVar10 = pcVar5;" (assignment_expression "*(char **)puVar10 = pcVar5" (pointer_expression "*(char **)puVar10" * (cast_expression "(char **)puVar10" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }" if (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" ( (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }" { (expression_statement "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;" (assignment_expression "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc" (pointer_expression "*(undefined **)puVar10" * (cast_expression "(undefined **)puVar10" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "PTR_LAB_0004ec08 + 0x68cc" identifier + number_literal)) ;) })) })) (expression_statement "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);" (assignment_expression "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc)" identifier = (cast_expression "(char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68dc)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68dc)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68dc" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = PTR_editproto_0004ec84;" (assignment_expression "puVar10 = PTR_editproto_0004ec84" identifier = identifier) ;) (expression_statement "*(char **)PTR_editproto_0004ec84 = pcVar5;" (assignment_expression "*(char **)PTR_editproto_0004ec84 = pcVar5" (pointer_expression "*(char **)PTR_editproto_0004ec84" * (cast_expression "(char **)PTR_editproto_0004ec84" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }" if (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" ( (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }" { (expression_statement "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;" (assignment_expression "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8" (pointer_expression "*(undefined **)puVar10" * (cast_expression "(undefined **)puVar10" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "PTR_LAB_0004ec08 + 0x68e8" identifier + number_literal)) ;) })) (if_statement "if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;" if (parenthesized_expression "(*(int *)PTR_dohelp_0004ec88 != 0)" ( (binary_expression "*(int *)PTR_dohelp_0004ec88 != 0" (pointer_expression "*(int *)PTR_dohelp_0004ec88" * (cast_expression "(int *)PTR_dohelp_0004ec88" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (goto_statement "goto LAB_00015654;" goto statement_identifier ;)) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }" { (expression_statement "iVar7 = param_1 + -1;" (assignment_expression "iVar7 = param_1 + -1" identifier = (binary_expression "param_1 + -1" identifier + number_literal)) ;) (if_statement "if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" if (parenthesized_expression "(param_1 < 1)" ( (binary_expression "param_1 < 1" identifier < number_literal) )) (compound_statement "{\n        iVar7 = *(int *)puVar3;\n      }" { (expression_statement "iVar7 = *(int *)puVar3;" (assignment_expression "iVar7 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" else (compound_statement "{\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" { (do_statement "do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);" do (compound_statement "{\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        }" { (expression_statement "iVar8 = shell_quote(*piVar13);" (assignment_expression "iVar8 = shell_quote(*piVar13)" identifier = (call_expression "shell_quote(*piVar13)" identifier (argument_list "(*piVar13)" ( (pointer_expression "*piVar13" * identifier) )))) ;) (if_statement "if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar8 = *piVar13;\n          }" { (expression_statement "iVar8 = *piVar13;" (assignment_expression "iVar8 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) })) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "get_ifile(iVar8,uVar6);" (call_expression "get_ifile(iVar8,uVar6)" identifier (argument_list "(iVar8,uVar6)" ( identifier , identifier ))) ;) (expression_statement "piVar13 = piVar13 + 1;" (assignment_expression "piVar13 = piVar13 + 1" identifier = (binary_expression "piVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = prev_ifile(0);" (assignment_expression "uVar6 = prev_ifile(0)" identifier = (call_expression "prev_ifile(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(*(code *)PTR_free_0004f37c)(iVar8);" (call_expression "(*(code *)PTR_free_0004f37c)(iVar8)" (parenthesized_expression "(*(code *)PTR_free_0004f37c)" ( (pointer_expression "*(code *)PTR_free_0004f37c" * (cast_expression "(code *)PTR_free_0004f37c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8)" ( identifier ))) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "iVar7 = *(int *)puVar3;" (assignment_expression "iVar7 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (iVar7 != 0) break;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" identifier = (call_expression "nifile()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }" { (expression_statement "iVar7 = edit_stdin();" (assignment_expression "iVar7 = edit_stdin()" identifier = (call_expression "edit_stdin()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n          cat_file();\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          cat_file();\n        }" { (expression_statement "cat_file();" (call_expression "cat_file()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" else (compound_statement "{\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" { (expression_statement "iVar7 = edit_first();" (assignment_expression "iVar7 = edit_first()" identifier = (call_expression "edit_first()" identifier (argument_list "()" ( )))) ;) (while_statement "while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }" while (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          cat_file();\n          iVar7 = edit_next(1);\n        }" { (expression_statement "cat_file();" (call_expression "cat_file()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = edit_next(1);" (assignment_expression "iVar7 = edit_next(1)" identifier = (call_expression "edit_next(1)" identifier (argument_list "(1)" ( number_literal )))) ;) })) }))) (expression_statement "quit(0);" (call_expression "quit(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);" statement_identifier : (expression_statement "uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);" (assignment_expression "uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8)" identifier = (call_expression "get_ifile(PTR_LAB_0004ec08 + 0x68f8)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68f8)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68f8" identifier + number_literal) )))) ;)) })) (if_statement "if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }" if (parenthesized_expression "((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0))" ( (binary_expression "(*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)" (parenthesized_expression "(*(int *)PTR_missing_cap_0004ec98 != 0)" ( (binary_expression "*(int *)PTR_missing_cap_0004ec98 != 0" (pointer_expression "*(int *)PTR_missing_cap_0004ec98" * (cast_expression "(int *)PTR_missing_cap_0004ec98" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) && (parenthesized_expression "(*(int *)PTR_know_dumb_0004eca0 == 0)" ( (binary_expression "*(int *)PTR_know_dumb_0004eca0 == 0" (pointer_expression "*(int *)PTR_know_dumb_0004eca0" * (cast_expression "(int *)PTR_know_dumb_0004eca0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) ))) )) (compound_statement "{\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }" { (expression_statement "error(PTR_LAB_0004ec08 + 0x6910,0);" (call_expression "error(PTR_LAB_0004ec08 + 0x6910,0)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x6910,0)" ( (binary_expression "PTR_LAB_0004ec08 + 0x6910" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "puVar10 = PTR_tagoption_0004eca4;" (assignment_expression "puVar10 = PTR_tagoption_0004eca4" identifier = identifier) ;) (expression_statement "init_mark();" (call_expression "init_mark()" identifier (argument_list "()" ( ))) ;) (expression_statement "open_getchr();" (call_expression "open_getchr()" identifier (argument_list "()" ( ))) ;) (expression_statement "raw_mode(1);" (call_expression "raw_mode(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "init_signals(1);" (call_expression "init_signals(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (if_statement "if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }" if (parenthesized_expression "(*(int *)puVar10 == 0)" ( (binary_expression "*(int *)puVar10 == 0" (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }" { (expression_statement "ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;" (assignment_expression "ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4" identifier = (pointer_expression "*(EVP_PKEY_CTX **)PTR_tags_0004ecb4" * (cast_expression "(EVP_PKEY_CTX **)PTR_tags_0004ecb4" ( (type_descriptor "EVP_PKEY_CTX **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c)" identifier = (call_expression "(*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" ( (pointer_expression "*(code *)PTR_strcmp_0004f39c" * (cast_expression "(code *)PTR_strcmp_0004f39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ctx,PTR_LAB_0004ec08 + 0x693c)" ( identifier , (binary_expression "PTR_LAB_0004ec08 + 0x693c" identifier + number_literal) )))) ;) (if_statement "if (iVar7 == 0) goto LAB_000154f0;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000154f0;" goto statement_identifier ;)) (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" identifier = (call_expression "nifile()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = edit_stdin();\n      }" { (expression_statement "iVar7 = edit_stdin();" (assignment_expression "iVar7 = edit_stdin()" identifier = (call_expression "edit_stdin()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n        iVar7 = edit_first();\n      }" else (compound_statement "{\n        iVar7 = edit_first();\n      }" { (expression_statement "iVar7 = edit_first();" (assignment_expression "iVar7 = edit_first()" identifier = (call_expression "edit_first()" identifier (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar7 != 0) goto LAB_0001559c;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001559c;" goto statement_identifier ;)) (goto_statement "goto LAB_000155f8;" goto statement_identifier ;) })) (labeled_statement "LAB_000154f0:\n    iVar7 = nifile();" statement_identifier : (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" identifier = (call_expression "nifile()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }" { (do_statement "do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );" do (compound_statement "{\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      }" { (expression_statement "findtag(*(undefined4 *)puVar10);" (call_expression "findtag(*(undefined4 *)puVar10)" identifier (argument_list "(*(undefined4 *)puVar10)" ( (pointer_expression "*(undefined4 *)puVar10" * (cast_expression "(undefined4 *)puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "iVar7 = edit_tagfile();" (assignment_expression "iVar7 = edit_tagfile()" identifier = (call_expression "edit_tagfile()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }" { (expression_statement "lVar15 = tagsearch();" (assignment_expression "lVar15 = tagsearch()" identifier = (call_expression "tagsearch()" identifier (argument_list "()" ( )))) ;) (expression_statement "ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;" (assignment_expression "ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8" identifier = (cast_expression "(EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;" (assignment_expression "*(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15" (pointer_expression "*(longlong *)PTR_initial_scrpos_0004ecc8" * (cast_expression "(longlong *)PTR_initial_scrpos_0004ecc8" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (lVar15 != -1) goto LAB_000155f0;" if (parenthesized_expression "(lVar15 != -1)" ( (binary_expression "lVar15 != -1" identifier != number_literal) )) (goto_statement "goto LAB_000155f0;" goto statement_identifier ;)) })) (labeled_statement "LAB_0001559c:\n        quit(1);" statement_identifier : (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "error(PTR_LAB_0004ec08 + 0x6940,0);" (call_expression "error(PTR_LAB_0004ec08 + 0x6940,0)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x6940,0)" ( (binary_expression "PTR_LAB_0004ec08 + 0x6940" identifier + number_literal) , number_literal ))) ;) (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (labeled_statement "LAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);" statement_identifier : (expression_statement "iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);" (assignment_expression "iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8)" identifier = (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68a8)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68a8)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68a8" identifier + number_literal) )))) ;)) (expression_statement "piVar12 = (int *)PTR_less_is_more_0004ec68;" (assignment_expression "piVar12 = (int *)PTR_less_is_more_0004ec68" identifier = (cast_expression "(int *)PTR_less_is_more_0004ec68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }" { (expression_statement "*(undefined4 *)PTR_less_is_more_0004ec68 = 1;" (assignment_expression "*(undefined4 *)PTR_less_is_more_0004ec68 = 1" (pointer_expression "*(undefined4 *)PTR_less_is_more_0004ec68" * (cast_expression "(undefined4 *)PTR_less_is_more_0004ec68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;" statement_identifier : (expression_statement "*(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;" (assignment_expression "*(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc" (pointer_expression "*(undefined4 *)(ctx + 8)" * (cast_expression "(undefined4 *)(ctx + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ctx + 8)" ( (binary_expression "ctx + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)PTR_jump_sline_0004eccc" * (cast_expression "(undefined4 *)PTR_jump_sline_0004eccc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (labeled_statement "LAB_000155f8:\n  init(ctx);" statement_identifier : (expression_statement "init(ctx);" (call_expression "init(ctx)" identifier (argument_list "(ctx)" ( identifier ))) ;)) (expression_statement "pcVar14 = (code *)PTR_commands_0004ecd4;" (assignment_expression "pcVar14 = (code *)PTR_commands_0004ecd4" identifier = (cast_expression "(code *)PTR_commands_0004ecd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00015330;" goto statement_identifier ;) })))
(translation_unit "int main(int argc,char **argv)\n\n{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  EVP_PKEY_CTX *ctx;\n  void *prev;\n  uint uVar9;\n  int *piVar10;\n  char **ppcVar11;\n  int iVar12;\n  undefined *puVar13;\n  void *pvVar14;\n  code *pcVar15;\n  POSITION PVar16;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar13 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  iVar12 = argc + -1;\n  ppcVar11 = argv + 1;\n  *(char **)PTR_progname_0004ec44 = *argv;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar9 = *(uint *)puVar13;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar9);\n  uVar8 = uVar9 + iVar7;\n  if (uVar9 < uVar8) {\n    cVar1 = *(char *)(uVar8 - 1);\n    uVar2 = uVar8;\n    while ((uVar8 = uVar2, cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar8;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar8,PTR_LAB_0004ec08 + 0x68a0);\n  piVar10 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar10 == 0) {\n      pcVar5 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      pcVar5 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    pcVar5 = lgetenv(pcVar5);\n    if (pcVar5 != (char *)0x0) {\n      pcVar5 = save(pcVar5);\n      scan_option(pcVar5);\n    }\n    if (0 < iVar12) {\n      puVar13 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = *ppcVar11;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }\n        ppcVar11 = ppcVar11 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);\n        iVar12 = iVar12 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar15 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar15)();\n    quit(0);\nLAB_00015348:\n    puVar13 = PTR_editor_0004ec80;\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar13 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar13 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar13 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    prev = (void *)0x0;\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    pvVar14 = (void *)0x0;\n    while( true ) {\n      iVar7 = iVar12 + -1;\n      if (iVar12 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0);\n    }\n    puVar13 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar13 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(char **)puVar13);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,(PARG *)0x0);\n    quit(1);\nLAB_00015528:\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar10 = (int *)PTR_less_is_more_0004ec68;\n    if (pcVar5 == (char *)0x0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar15 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}\n\n" (function_definition "int main(int argc,char **argv)\n\n{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  EVP_PKEY_CTX *ctx;\n  void *prev;\n  uint uVar9;\n  int *piVar10;\n  char **ppcVar11;\n  int iVar12;\n  undefined *puVar13;\n  void *pvVar14;\n  code *pcVar15;\n  POSITION PVar16;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar13 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  iVar12 = argc + -1;\n  ppcVar11 = argv + 1;\n  *(char **)PTR_progname_0004ec44 = *argv;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar9 = *(uint *)puVar13;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar9);\n  uVar8 = uVar9 + iVar7;\n  if (uVar9 < uVar8) {\n    cVar1 = *(char *)(uVar8 - 1);\n    uVar2 = uVar8;\n    while ((uVar8 = uVar2, cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar8;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar8,PTR_LAB_0004ec08 + 0x68a0);\n  piVar10 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar10 == 0) {\n      pcVar5 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      pcVar5 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    pcVar5 = lgetenv(pcVar5);\n    if (pcVar5 != (char *)0x0) {\n      pcVar5 = save(pcVar5);\n      scan_option(pcVar5);\n    }\n    if (0 < iVar12) {\n      puVar13 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = *ppcVar11;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }\n        ppcVar11 = ppcVar11 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);\n        iVar12 = iVar12 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar15 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar15)();\n    quit(0);\nLAB_00015348:\n    puVar13 = PTR_editor_0004ec80;\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar13 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar13 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar13 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    prev = (void *)0x0;\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    pvVar14 = (void *)0x0;\n    while( true ) {\n      iVar7 = iVar12 + -1;\n      if (iVar12 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0);\n    }\n    puVar13 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar13 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(char **)puVar13);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,(PARG *)0x0);\n    quit(1);\nLAB_00015528:\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar10 = (int *)PTR_less_is_more_0004ec68;\n    if (pcVar5 == (char *)0x0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar15 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}" primitive_type (function_declarator "main(int argc,char **argv)" identifier (parameter_list "(int argc,char **argv)" ( (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  EVP_PKEY_CTX *ctx;\n  void *prev;\n  uint uVar9;\n  int *piVar10;\n  char **ppcVar11;\n  int iVar12;\n  undefined *puVar13;\n  void *pvVar14;\n  code *pcVar15;\n  POSITION PVar16;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar13 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  iVar12 = argc + -1;\n  ppcVar11 = argv + 1;\n  *(char **)PTR_progname_0004ec44 = *argv;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar9 = *(uint *)puVar13;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar9);\n  uVar8 = uVar9 + iVar7;\n  if (uVar9 < uVar8) {\n    cVar1 = *(char *)(uVar8 - 1);\n    uVar2 = uVar8;\n    while ((uVar8 = uVar2, cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar8;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar8,PTR_LAB_0004ec08 + 0x68a0);\n  piVar10 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar10 == 0) {\n      pcVar5 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      pcVar5 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    pcVar5 = lgetenv(pcVar5);\n    if (pcVar5 != (char *)0x0) {\n      pcVar5 = save(pcVar5);\n      scan_option(pcVar5);\n    }\n    if (0 < iVar12) {\n      puVar13 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = *ppcVar11;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }\n        ppcVar11 = ppcVar11 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);\n        iVar12 = iVar12 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar15 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar15)();\n    quit(0);\nLAB_00015348:\n    puVar13 = PTR_editor_0004ec80;\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar13 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar13 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar13 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    prev = (void *)0x0;\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    pvVar14 = (void *)0x0;\n    while( true ) {\n      iVar7 = iVar12 + -1;\n      if (iVar12 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0);\n    }\n    puVar13 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar13 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(char **)puVar13);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,(PARG *)0x0);\n    quit(1);\nLAB_00015528:\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar10 = (int *)PTR_less_is_more_0004ec68;\n    if (pcVar5 == (char *)0x0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar15 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "EVP_PKEY_CTX *ctx;" type_identifier (pointer_declarator "*ctx" * identifier) ;) (declaration "void *prev;" primitive_type (pointer_declarator "*prev" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "char **ppcVar11;" primitive_type (pointer_declarator "**ppcVar11" * (pointer_declarator "*ppcVar11" * identifier)) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "void *pvVar14;" primitive_type (pointer_declarator "*pvVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "POSITION PVar16;" type_identifier identifier ;) (expression_statement "puVar4 = PTR_secure_0004ec48;" (assignment_expression "puVar4 = PTR_secure_0004ec48" identifier = identifier) ;) (expression_statement "puVar13 = PTR_progname_0004ec44;" (assignment_expression "puVar13 = PTR_progname_0004ec44" identifier = identifier) ;) (expression_statement "puVar3 = PTR_LAB_0004ec08;" (assignment_expression "puVar3 = PTR_LAB_0004ec08" identifier = identifier) ;) (expression_statement "iVar12 = argc + -1;" (assignment_expression "iVar12 = argc + -1" identifier = (binary_expression "argc + -1" identifier + number_literal)) ;) (expression_statement "ppcVar11 = argv + 1;" (assignment_expression "ppcVar11 = argv + 1" identifier = (binary_expression "argv + 1" identifier + number_literal)) ;) (expression_statement "*(char **)PTR_progname_0004ec44 = *argv;" (assignment_expression "*(char **)PTR_progname_0004ec44 = *argv" (pointer_expression "*(char **)PTR_progname_0004ec44" * (cast_expression "(char **)PTR_progname_0004ec44" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (pointer_expression "*argv" * identifier)) ;) (expression_statement "*(undefined4 *)puVar4 = 0;" (assignment_expression "*(undefined4 *)puVar4 = 0" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pcVar5 = lgetenv(puVar3 + 0x6894);" (assignment_expression "pcVar5 = lgetenv(puVar3 + 0x6894)" identifier = (call_expression "lgetenv(puVar3 + 0x6894)" identifier (argument_list "(puVar3 + 0x6894)" ( (binary_expression "puVar3 + 0x6894" identifier + number_literal) )))) ;) (if_statement "if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }" if (parenthesized_expression "((pcVar5 != (char *)0x0) && (*pcVar5 != '\0'))" ( (binary_expression "(pcVar5 != (char *)0x0) && (*pcVar5 != '\0')" (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar5 != '\0')" ( (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    *(undefined4 *)puVar4 = 1;\n  }" { (expression_statement "*(undefined4 *)puVar4 = 1;" (assignment_expression "*(undefined4 *)puVar4 = 1" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (expression_statement "puVar3 = PTR_is_tty_0004ec20;" (assignment_expression "puVar3 = PTR_is_tty_0004ec20" identifier = identifier) ;) (expression_statement "uVar6 = (*(code *)PTR_isatty_0004f294)(1);" (assignment_expression "uVar6 = (*(code *)PTR_isatty_0004f294)(1)" identifier = (call_expression "(*(code *)PTR_isatty_0004f294)(1)" (parenthesized_expression "(*(code *)PTR_isatty_0004f294)" ( (pointer_expression "*(code *)PTR_isatty_0004f294" * (cast_expression "(code *)PTR_isatty_0004f294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)puVar3 = uVar6;" (assignment_expression "*(undefined4 *)puVar3 = uVar6" (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "get_term();" (call_expression "get_term()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_cmds();" (call_expression "init_cmds()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_charset();" (call_expression "init_charset()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_line();" (call_expression "init_line()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_cmdhist();" (call_expression "init_cmdhist()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_option();" (call_expression "init_option()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_search();" (call_expression "init_search()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar9 = *(uint *)puVar13;" (assignment_expression "uVar9 = *(uint *)puVar13" identifier = (pointer_expression "*(uint *)puVar13" * (cast_expression "(uint *)puVar13" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar9);" (assignment_expression "iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar9)" identifier = (call_expression "(*(code *)PTR_strlen_0004f30c)(uVar9)" (parenthesized_expression "(*(code *)PTR_strlen_0004f30c)" ( (pointer_expression "*(code *)PTR_strlen_0004f30c" * (cast_expression "(code *)PTR_strlen_0004f30c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "uVar8 = uVar9 + iVar7;" (assignment_expression "uVar8 = uVar9 + iVar7" identifier = (binary_expression "uVar9 + iVar7" identifier + identifier)) ;) (if_statement "if (uVar9 < uVar8) {\n    cVar1 = *(char *)(uVar8 - 1);\n    uVar2 = uVar8;\n    while ((uVar8 = uVar2, cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar8;\n    }\n  }" if (parenthesized_expression "(uVar9 < uVar8)" ( (binary_expression "uVar9 < uVar8" identifier < identifier) )) (compound_statement "{\n    cVar1 = *(char *)(uVar8 - 1);\n    uVar2 = uVar8;\n    while ((uVar8 = uVar2, cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar8;\n    }\n  }" { (expression_statement "cVar1 = *(char *)(uVar8 - 1);" (assignment_expression "cVar1 = *(char *)(uVar8 - 1)" identifier = (pointer_expression "*(char *)(uVar8 - 1)" * (cast_expression "(char *)(uVar8 - 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 - 1)" ( (binary_expression "uVar8 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar2 = uVar8;" (assignment_expression "uVar2 = uVar8" identifier = identifier) ;) (while_statement "while ((uVar8 = uVar2, cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar8;\n    }" while (parenthesized_expression "((uVar8 = uVar2, cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8)))" ( (parenthesized_expression "(uVar8 = uVar2, cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8))" ( (comma_expression "uVar8 = uVar2, cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8)" (assignment_expression "uVar8 = uVar2" identifier = identifier) , (binary_expression "cVar1 != '/' && (uVar8 = uVar2 - 1, uVar9 != uVar8)" (binary_expression "cVar1 != '/'" identifier != (char_literal "'/'" ' character ')) && (parenthesized_expression "(uVar8 = uVar2 - 1, uVar9 != uVar8)" ( (comma_expression "uVar8 = uVar2 - 1, uVar9 != uVar8" (assignment_expression "uVar8 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) , (binary_expression "uVar9 != uVar8" identifier != identifier)) )))) )) )) (compound_statement "{\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar8;\n    }" { (expression_statement "cVar1 = *(char *)(uVar2 - 2);" (assignment_expression "cVar1 = *(char *)(uVar2 - 2)" identifier = (pointer_expression "*(char *)(uVar2 - 2)" * (cast_expression "(char *)(uVar2 - 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 - 2)" ( (binary_expression "uVar2 - 2" identifier - number_literal) ))))) ;) (expression_statement "uVar2 = uVar8;" (assignment_expression "uVar2 = uVar8" identifier = identifier) ;) })) })) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar8,PTR_LAB_0004ec08 + 0x68a0);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar8,PTR_LAB_0004ec08 + 0x68a0)" identifier = (call_expression "(*(code *)PTR_strcmp_0004f39c)(uVar8,PTR_LAB_0004ec08 + 0x68a0)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" ( (pointer_expression "*(code *)PTR_strcmp_0004f39c" * (cast_expression "(code *)PTR_strcmp_0004f39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8,PTR_LAB_0004ec08 + 0x68a0)" ( identifier , (binary_expression "PTR_LAB_0004ec08 + 0x68a0" identifier + number_literal) )))) ;) (expression_statement "piVar10 = (int *)PTR_less_is_more_0004ec68;" (assignment_expression "piVar10 = (int *)PTR_less_is_more_0004ec68" identifier = (cast_expression "(int *)PTR_less_is_more_0004ec68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar7 == 0) goto LAB_00015528;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015528;" goto statement_identifier ;)) (do_statement "do {\n    init_prompt();\n    if (*piVar10 == 0) {\n      pcVar5 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      pcVar5 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    pcVar5 = lgetenv(pcVar5);\n    if (pcVar5 != (char *)0x0) {\n      pcVar5 = save(pcVar5);\n      scan_option(pcVar5);\n    }\n    if (0 < iVar12) {\n      puVar13 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = *ppcVar11;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }\n        ppcVar11 = ppcVar11 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);\n        iVar12 = iVar12 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar15 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar15)();\n    quit(0);\nLAB_00015348:\n    puVar13 = PTR_editor_0004ec80;\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar13 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar13 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar13 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    prev = (void *)0x0;\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    pvVar14 = (void *)0x0;\n    while( true ) {\n      iVar7 = iVar12 + -1;\n      if (iVar12 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0);\n    }\n    puVar13 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar13 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(char **)puVar13);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,(PARG *)0x0);\n    quit(1);\nLAB_00015528:\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar10 = (int *)PTR_less_is_more_0004ec68;\n    if (pcVar5 == (char *)0x0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );" do (compound_statement "{\n    init_prompt();\n    if (*piVar10 == 0) {\n      pcVar5 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      pcVar5 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    pcVar5 = lgetenv(pcVar5);\n    if (pcVar5 != (char *)0x0) {\n      pcVar5 = save(pcVar5);\n      scan_option(pcVar5);\n    }\n    if (0 < iVar12) {\n      puVar13 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = *ppcVar11;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }\n        ppcVar11 = ppcVar11 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);\n        iVar12 = iVar12 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar15 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar15)();\n    quit(0);\nLAB_00015348:\n    puVar13 = PTR_editor_0004ec80;\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar13 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar13 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar13 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    prev = (void *)0x0;\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    pvVar14 = (void *)0x0;\n    while( true ) {\n      iVar7 = iVar12 + -1;\n      if (iVar12 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0);\n    }\n    puVar13 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar13 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(char **)puVar13);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,(PARG *)0x0);\n    quit(1);\nLAB_00015528:\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar10 = (int *)PTR_less_is_more_0004ec68;\n    if (pcVar5 == (char *)0x0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  }" { (expression_statement "init_prompt();" (call_expression "init_prompt()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*piVar10 == 0) {\n      pcVar5 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      pcVar5 = PTR_LAB_0004ec08 + 0x68b0;\n    }" if (parenthesized_expression "(*piVar10 == 0)" ( (binary_expression "*piVar10 == 0" (pointer_expression "*piVar10" * identifier) == number_literal) )) (compound_statement "{\n      pcVar5 = PTR_LAB_0004ec08 + 0x688c;\n    }" { (expression_statement "pcVar5 = PTR_LAB_0004ec08 + 0x688c;" (assignment_expression "pcVar5 = PTR_LAB_0004ec08 + 0x688c" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x688c" identifier + number_literal)) ;) }) (else_clause "else {\n      pcVar5 = PTR_LAB_0004ec08 + 0x68b0;\n    }" else (compound_statement "{\n      pcVar5 = PTR_LAB_0004ec08 + 0x68b0;\n    }" { (expression_statement "pcVar5 = PTR_LAB_0004ec08 + 0x68b0;" (assignment_expression "pcVar5 = PTR_LAB_0004ec08 + 0x68b0" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x68b0" identifier + number_literal)) ;) }))) (expression_statement "pcVar5 = lgetenv(pcVar5);" (assignment_expression "pcVar5 = lgetenv(pcVar5)" identifier = (call_expression "lgetenv(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (if_statement "if (pcVar5 != (char *)0x0) {\n      pcVar5 = save(pcVar5);\n      scan_option(pcVar5);\n    }" if (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar5 = save(pcVar5);\n      scan_option(pcVar5);\n    }" { (expression_statement "pcVar5 = save(pcVar5);" (assignment_expression "pcVar5 = save(pcVar5)" identifier = (call_expression "save(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "scan_option(pcVar5);" (call_expression "scan_option(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) })) (if_statement "if (0 < iVar12) {\n      puVar13 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = *ppcVar11;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }\n        ppcVar11 = ppcVar11 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);\n        iVar12 = iVar12 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;\n      } while( true );\n    }" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (compound_statement "{\n      puVar13 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = *ppcVar11;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }\n        ppcVar11 = ppcVar11 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);\n        iVar12 = iVar12 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;\n      } while( true );\n    }" { (expression_statement "puVar13 = PTR_LAB_0004ec08 + 0x68b8;" (assignment_expression "puVar13 = PTR_LAB_0004ec08 + 0x68b8" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x68b8" identifier + number_literal)) ;) (do_statement "do {\n        pcVar5 = *ppcVar11;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }\n        ppcVar11 = ppcVar11 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);\n        iVar12 = iVar12 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;\n      } while( true );" do (compound_statement "{\n        pcVar5 = *ppcVar11;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }\n        ppcVar11 = ppcVar11 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);\n        iVar12 = iVar12 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;\n      }" { (expression_statement "pcVar5 = *ppcVar11;" (assignment_expression "pcVar5 = *ppcVar11" identifier = (pointer_expression "*ppcVar11" * identifier)) ;) (if_statement "if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }" if (parenthesized_expression "(((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0'))" ( (binary_expression "((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')" (parenthesized_expression "((*pcVar5 != '-') && (*pcVar5 != '+'))" ( (binary_expression "(*pcVar5 != '-') && (*pcVar5 != '+')" (parenthesized_expression "(*pcVar5 != '-')" ( (binary_expression "*pcVar5 != '-'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(*pcVar5 != '+')" ( (binary_expression "*pcVar5 != '+'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'+'" ' character ')) ))) )) || (parenthesized_expression "(pcVar5[1] == '\0')" ( (binary_expression "pcVar5[1] == '\0'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = *ppcVar11;\n        }" { (expression_statement "iVar7 = isoptpending();" (assignment_expression "iVar7 = isoptpending()" identifier = (call_expression "isoptpending()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar5 = *ppcVar11;" (assignment_expression "pcVar5 = *ppcVar11" identifier = (pointer_expression "*ppcVar11" * identifier)) ;) })) (expression_statement "ppcVar11 = ppcVar11 + 1;" (assignment_expression "ppcVar11 = ppcVar11 + 1" identifier = (binary_expression "ppcVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13)" identifier = (call_expression "(*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar13)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" ( (pointer_expression "*(code *)PTR_strcmp_0004f39c" * (cast_expression "(code *)PTR_strcmp_0004f39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5,puVar13)" ( identifier , identifier )))) ;) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (if_statement "if ((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)) break;" if (parenthesized_expression "((iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0))" ( (binary_expression "(iVar7 == 0) || (scan_option(pcVar5), iVar12 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(scan_option(pcVar5), iVar12 == 0)" ( (comma_expression "scan_option(pcVar5), iVar12 == 0" (call_expression "scan_option(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar7 = isoptpending();" (assignment_expression "iVar7 = isoptpending()" identifier = (call_expression "isoptpending()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar15 = (code *)PTR_nopendopt_0004ec7c;" (assignment_expression "pcVar15 = (code *)PTR_nopendopt_0004ec7c" identifier = (cast_expression "(code *)PTR_nopendopt_0004ec7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar7 == 0) goto LAB_00015348;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015348;" goto statement_identifier ;)) (labeled_statement "LAB_00015330:\n    (*pcVar15)();" statement_identifier : (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "quit(0);" (call_expression "quit(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_00015348:\n    puVar13 = PTR_editor_0004ec80;" statement_identifier : (expression_statement "puVar13 = PTR_editor_0004ec80;" (assignment_expression "puVar13 = PTR_editor_0004ec80" identifier = identifier) ;)) (expression_statement "pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68bc);" (assignment_expression "pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68bc)" identifier = (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68bc)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68bc)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68bc" identifier + number_literal) )))) ;) (expression_statement "*(char **)puVar13 = pcVar5;" (assignment_expression "*(char **)puVar13 = pcVar5" (pointer_expression "*(char **)puVar13" * (cast_expression "(char **)puVar13" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar13 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }" if (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" ( (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar13 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }" { (expression_statement "pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68c4);" (assignment_expression "pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68c4)" identifier = (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68c4)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68c4)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68c4" identifier + number_literal) )))) ;) (expression_statement "*(char **)puVar13 = pcVar5;" (assignment_expression "*(char **)puVar13 = pcVar5" (pointer_expression "*(char **)puVar13" * (cast_expression "(char **)puVar13" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;\n      }" if (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" ( (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;\n      }" { (expression_statement "*(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc;" (assignment_expression "*(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68cc" (pointer_expression "*(undefined **)puVar13" * (cast_expression "(undefined **)puVar13" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "PTR_LAB_0004ec08 + 0x68cc" identifier + number_literal)) ;) })) })) (expression_statement "pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68dc);" (assignment_expression "pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68dc)" identifier = (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68dc)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68dc)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68dc" identifier + number_literal) )))) ;) (expression_statement "puVar13 = PTR_editproto_0004ec84;" (assignment_expression "puVar13 = PTR_editproto_0004ec84" identifier = identifier) ;) (expression_statement "*(char **)PTR_editproto_0004ec84 = pcVar5;" (assignment_expression "*(char **)PTR_editproto_0004ec84 = pcVar5" (pointer_expression "*(char **)PTR_editproto_0004ec84" * (cast_expression "(char **)PTR_editproto_0004ec84" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68e8;\n    }" if (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" ( (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      *(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68e8;\n    }" { (expression_statement "*(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68e8;" (assignment_expression "*(undefined **)puVar13 = PTR_LAB_0004ec08 + 0x68e8" (pointer_expression "*(undefined **)puVar13" * (cast_expression "(undefined **)puVar13" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "PTR_LAB_0004ec08 + 0x68e8" identifier + number_literal)) ;) })) (expression_statement "prev = (void *)0x0;" (assignment_expression "prev = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;" if (parenthesized_expression "(*(int *)PTR_dohelp_0004ec88 != 0)" ( (binary_expression "*(int *)PTR_dohelp_0004ec88 != 0" (pointer_expression "*(int *)PTR_dohelp_0004ec88" * (cast_expression "(int *)PTR_dohelp_0004ec88" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (goto_statement "goto LAB_00015654;" goto statement_identifier ;)) (expression_statement "pvVar14 = (void *)0x0;" (assignment_expression "pvVar14 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while( true ) {\n      iVar7 = iVar12 + -1;\n      if (iVar12 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar7 = iVar12 + -1;\n      if (iVar12 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev);\n    }" { (expression_statement "iVar7 = iVar12 + -1;" (assignment_expression "iVar7 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (if_statement "if (iVar12 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" if (parenthesized_expression "(iVar12 < 1)" ( (binary_expression "iVar12 < 1" identifier < number_literal) )) (compound_statement "{\n        iVar7 = *(int *)puVar3;\n      }" { (expression_statement "iVar7 = *(int *)puVar3;" (assignment_expression "iVar7 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n        do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" else (compound_statement "{\n        do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" { (do_statement "do {\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        } while (iVar7 != -1);" do (compound_statement "{\n          prev = pvVar14;\n          pcVar5 = shell_quote(*ppcVar11);\n          if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(pcVar5,prev);\n          ppcVar11 = ppcVar11 + 1;\n          pvVar14 = prev_ifile((void *)0x0);\n          (*(code *)PTR_free_0004f37c)(pcVar5);\n        }" { (expression_statement "prev = pvVar14;" (assignment_expression "prev = pvVar14" identifier = identifier) ;) (expression_statement "pcVar5 = shell_quote(*ppcVar11);" (assignment_expression "pcVar5 = shell_quote(*ppcVar11)" identifier = (call_expression "shell_quote(*ppcVar11)" identifier (argument_list "(*ppcVar11)" ( (pointer_expression "*ppcVar11" * identifier) )))) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n            pcVar5 = *ppcVar11;\n          }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar5 = *ppcVar11;\n          }" { (expression_statement "pcVar5 = *ppcVar11;" (assignment_expression "pcVar5 = *ppcVar11" identifier = (pointer_expression "*ppcVar11" * identifier)) ;) })) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "get_ifile(pcVar5,prev);" (call_expression "get_ifile(pcVar5,prev)" identifier (argument_list "(pcVar5,prev)" ( identifier , identifier ))) ;) (expression_statement "ppcVar11 = ppcVar11 + 1;" (assignment_expression "ppcVar11 = ppcVar11 + 1" identifier = (binary_expression "ppcVar11 + 1" identifier + number_literal)) ;) (expression_statement "pvVar14 = prev_ifile((void *)0x0);" (assignment_expression "pvVar14 = prev_ifile((void *)0x0)" identifier = (call_expression "prev_ifile((void *)0x0)" identifier (argument_list "((void *)0x0)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "(*(code *)PTR_free_0004f37c)(pcVar5);" (call_expression "(*(code *)PTR_free_0004f37c)(pcVar5)" (parenthesized_expression "(*(code *)PTR_free_0004f37c)" ( (pointer_expression "*(code *)PTR_free_0004f37c" * (cast_expression "(code *)PTR_free_0004f37c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5)" ( identifier ))) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "iVar7 = *(int *)puVar3;" (assignment_expression "iVar7 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (iVar7 != 0) break;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" identifier = (call_expression "nifile()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }" { (expression_statement "iVar7 = edit_stdin();" (assignment_expression "iVar7 = edit_stdin()" identifier = (call_expression "edit_stdin()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n          cat_file();\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          cat_file();\n        }" { (expression_statement "cat_file();" (call_expression "cat_file()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" else (compound_statement "{\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" { (expression_statement "iVar7 = edit_first();" (assignment_expression "iVar7 = edit_first()" identifier = (call_expression "edit_first()" identifier (argument_list "()" ( )))) ;) (while_statement "while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }" while (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          cat_file();\n          iVar7 = edit_next(1);\n        }" { (expression_statement "cat_file();" (call_expression "cat_file()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = edit_next(1);" (assignment_expression "iVar7 = edit_next(1)" identifier = (call_expression "edit_next(1)" identifier (argument_list "(1)" ( number_literal )))) ;) })) }))) (expression_statement "quit(0);" (call_expression "quit(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_00015654:\n      pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev);" statement_identifier : (expression_statement "pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev);" (assignment_expression "pvVar14 = get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev)" identifier = (call_expression "get_ifile(PTR_LAB_0004ec08 + 0x68f8,prev)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68f8,prev)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68f8" identifier + number_literal) , identifier )))) ;)) })) (if_statement "if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0);\n    }" if (parenthesized_expression "((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0))" ( (binary_expression "(*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)" (parenthesized_expression "(*(int *)PTR_missing_cap_0004ec98 != 0)" ( (binary_expression "*(int *)PTR_missing_cap_0004ec98 != 0" (pointer_expression "*(int *)PTR_missing_cap_0004ec98" * (cast_expression "(int *)PTR_missing_cap_0004ec98" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) && (parenthesized_expression "(*(int *)PTR_know_dumb_0004eca0 == 0)" ( (binary_expression "*(int *)PTR_know_dumb_0004eca0 == 0" (pointer_expression "*(int *)PTR_know_dumb_0004eca0" * (cast_expression "(int *)PTR_know_dumb_0004eca0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) ))) )) (compound_statement "{\n      error(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0);\n    }" { (expression_statement "error(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0);" (call_expression "error(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x6910,(PARG *)0x0)" ( (binary_expression "PTR_LAB_0004ec08 + 0x6910" identifier + number_literal) , (cast_expression "(PARG *)0x0" ( (type_descriptor "PARG *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "puVar13 = PTR_tagoption_0004eca4;" (assignment_expression "puVar13 = PTR_tagoption_0004eca4" identifier = identifier) ;) (expression_statement "init_mark();" (call_expression "init_mark()" identifier (argument_list "()" ( ))) ;) (expression_statement "open_getchr();" (call_expression "open_getchr()" identifier (argument_list "()" ( ))) ;) (expression_statement "raw_mode(1);" (call_expression "raw_mode(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "init_signals(1);" (call_expression "init_signals(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (if_statement "if (*(int *)puVar13 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }" if (parenthesized_expression "(*(int *)puVar13 == 0)" ( (binary_expression "*(int *)puVar13 == 0" (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }" { (expression_statement "ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;" (assignment_expression "ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4" identifier = (pointer_expression "*(EVP_PKEY_CTX **)PTR_tags_0004ecb4" * (cast_expression "(EVP_PKEY_CTX **)PTR_tags_0004ecb4" ( (type_descriptor "EVP_PKEY_CTX **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c)" identifier = (call_expression "(*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" ( (pointer_expression "*(code *)PTR_strcmp_0004f39c" * (cast_expression "(code *)PTR_strcmp_0004f39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ctx,PTR_LAB_0004ec08 + 0x693c)" ( identifier , (binary_expression "PTR_LAB_0004ec08 + 0x693c" identifier + number_literal) )))) ;) (if_statement "if (iVar7 == 0) goto LAB_000154f0;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000154f0;" goto statement_identifier ;)) (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" identifier = (call_expression "nifile()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = edit_stdin();\n      }" { (expression_statement "iVar7 = edit_stdin();" (assignment_expression "iVar7 = edit_stdin()" identifier = (call_expression "edit_stdin()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n        iVar7 = edit_first();\n      }" else (compound_statement "{\n        iVar7 = edit_first();\n      }" { (expression_statement "iVar7 = edit_first();" (assignment_expression "iVar7 = edit_first()" identifier = (call_expression "edit_first()" identifier (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar7 != 0) goto LAB_0001559c;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001559c;" goto statement_identifier ;)) (goto_statement "goto LAB_000155f8;" goto statement_identifier ;) })) (labeled_statement "LAB_000154f0:\n    iVar7 = nifile();" statement_identifier : (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" identifier = (call_expression "nifile()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar7 < 1) {\n      do {\n        findtag(*(char **)puVar13);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\n      do {\n        findtag(*(char **)puVar13);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }" { (do_statement "do {\n        findtag(*(char **)puVar13);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );" do (compound_statement "{\n        findtag(*(char **)puVar13);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      }" { (expression_statement "findtag(*(char **)puVar13);" (call_expression "findtag(*(char **)puVar13)" identifier (argument_list "(*(char **)puVar13)" ( (pointer_expression "*(char **)puVar13" * (cast_expression "(char **)puVar13" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "iVar7 = edit_tagfile();" (assignment_expression "iVar7 = edit_tagfile()" identifier = (call_expression "edit_tagfile()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          PVar16 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;\n          if (PVar16 != -1) goto LAB_000155f0;\n        }" { (expression_statement "PVar16 = tagsearch();" (assignment_expression "PVar16 = tagsearch()" identifier = (call_expression "tagsearch()" identifier (argument_list "()" ( )))) ;) (expression_statement "ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;" (assignment_expression "ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8" identifier = (cast_expression "(EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16;" (assignment_expression "*(POSITION *)PTR_initial_scrpos_0004ecc8 = PVar16" (pointer_expression "*(POSITION *)PTR_initial_scrpos_0004ecc8" * (cast_expression "(POSITION *)PTR_initial_scrpos_0004ecc8" ( (type_descriptor "POSITION *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (PVar16 != -1) goto LAB_000155f0;" if (parenthesized_expression "(PVar16 != -1)" ( (binary_expression "PVar16 != -1" identifier != number_literal) )) (goto_statement "goto LAB_000155f0;" goto statement_identifier ;)) })) (labeled_statement "LAB_0001559c:\n        quit(1);" statement_identifier : (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "error(PTR_LAB_0004ec08 + 0x6940,(PARG *)0x0);" (call_expression "error(PTR_LAB_0004ec08 + 0x6940,(PARG *)0x0)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x6940,(PARG *)0x0)" ( (binary_expression "PTR_LAB_0004ec08 + 0x6940" identifier + number_literal) , (cast_expression "(PARG *)0x0" ( (type_descriptor "PARG *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (labeled_statement "LAB_00015528:\n    pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);" statement_identifier : (expression_statement "pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);" (assignment_expression "pcVar5 = lgetenv(PTR_LAB_0004ec08 + 0x68a8)" identifier = (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68a8)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68a8)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68a8" identifier + number_literal) )))) ;)) (expression_statement "piVar10 = (int *)PTR_less_is_more_0004ec68;" (assignment_expression "piVar10 = (int *)PTR_less_is_more_0004ec68" identifier = (cast_expression "(int *)PTR_less_is_more_0004ec68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }" { (expression_statement "*(undefined4 *)PTR_less_is_more_0004ec68 = 1;" (assignment_expression "*(undefined4 *)PTR_less_is_more_0004ec68 = 1" (pointer_expression "*(undefined4 *)PTR_less_is_more_0004ec68" * (cast_expression "(undefined4 *)PTR_less_is_more_0004ec68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;" statement_identifier : (expression_statement "*(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;" (assignment_expression "*(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc" (pointer_expression "*(undefined4 *)(ctx + 8)" * (cast_expression "(undefined4 *)(ctx + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ctx + 8)" ( (binary_expression "ctx + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)PTR_jump_sline_0004eccc" * (cast_expression "(undefined4 *)PTR_jump_sline_0004eccc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (labeled_statement "LAB_000155f8:\n  init(ctx);" statement_identifier : (expression_statement "init(ctx);" (call_expression "init(ctx)" identifier (argument_list "(ctx)" ( identifier ))) ;)) (expression_statement "pcVar15 = (code *)PTR_commands_0004ecd4;" (assignment_expression "pcVar15 = (code *)PTR_commands_0004ecd4" identifier = (cast_expression "(code *)PTR_commands_0004ecd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00015330;" goto statement_identifier ;) })))
(translation_unit "void main(int param_1,undefined4 *param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined *puVar10;\n  EVP_PKEY_CTX *ctx;\n  uint uVar11;\n  int *piVar12;\n  int *piVar13;\n  code *pcVar14;\n  longlong lVar15;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar10 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  param_1 = param_1 + -1;\n  piVar13 = param_2 + 1;\n  *(undefined4 *)PTR_progname_0004ec44 = *param_2;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = (char *)lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar11 = *(uint *)puVar10;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);\n  uVar9 = uVar11 + iVar7;\n  if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);\n  piVar12 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar14 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}\n\n" (function_definition "void main(int param_1,undefined4 *param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined *puVar10;\n  EVP_PKEY_CTX *ctx;\n  uint uVar11;\n  int *piVar12;\n  int *piVar13;\n  code *pcVar14;\n  longlong lVar15;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar10 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  param_1 = param_1 + -1;\n  piVar13 = param_2 + 1;\n  *(undefined4 *)PTR_progname_0004ec44 = *param_2;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = (char *)lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar11 = *(uint *)puVar10;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);\n  uVar9 = uVar11 + iVar7;\n  if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);\n  piVar12 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar14 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}" primitive_type (function_declarator "main(int param_1,undefined4 *param_2)" identifier (parameter_list "(int param_1,undefined4 *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined *puVar10;\n  EVP_PKEY_CTX *ctx;\n  uint uVar11;\n  int *piVar12;\n  int *piVar13;\n  code *pcVar14;\n  longlong lVar15;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar10 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  param_1 = param_1 + -1;\n  piVar13 = param_2 + 1;\n  *(undefined4 *)PTR_progname_0004ec44 = *param_2;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = (char *)lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar11 = *(uint *)puVar10;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);\n  uVar9 = uVar11 + iVar7;\n  if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);\n  piVar12 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar14 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "EVP_PKEY_CTX *ctx;" type_identifier (pointer_declarator "*ctx" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "longlong lVar15;" type_identifier identifier ;) (expression_statement "puVar4 = PTR_secure_0004ec48;" (assignment_expression "puVar4 = PTR_secure_0004ec48" identifier = identifier) ;) (expression_statement "puVar10 = PTR_progname_0004ec44;" (assignment_expression "puVar10 = PTR_progname_0004ec44" identifier = identifier) ;) (expression_statement "puVar3 = PTR_LAB_0004ec08;" (assignment_expression "puVar3 = PTR_LAB_0004ec08" identifier = identifier) ;) (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 "piVar13 = param_2 + 1;" (assignment_expression "piVar13 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)PTR_progname_0004ec44 = *param_2;" (assignment_expression "*(undefined4 *)PTR_progname_0004ec44 = *param_2" (pointer_expression "*(undefined4 *)PTR_progname_0004ec44" * (cast_expression "(undefined4 *)PTR_progname_0004ec44" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*(undefined4 *)puVar4 = 0;" (assignment_expression "*(undefined4 *)puVar4 = 0" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pcVar5 = (char *)lgetenv(puVar3 + 0x6894);" (assignment_expression "pcVar5 = (char *)lgetenv(puVar3 + 0x6894)" identifier = (cast_expression "(char *)lgetenv(puVar3 + 0x6894)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "lgetenv(puVar3 + 0x6894)" identifier (argument_list "(puVar3 + 0x6894)" ( (binary_expression "puVar3 + 0x6894" identifier + number_literal) ))))) ;) (if_statement "if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }" if (parenthesized_expression "((pcVar5 != (char *)0x0) && (*pcVar5 != '\0'))" ( (binary_expression "(pcVar5 != (char *)0x0) && (*pcVar5 != '\0')" (parenthesized_expression "(pcVar5 != (char *)0x0)" ( (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar5 != '\0')" ( (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    *(undefined4 *)puVar4 = 1;\n  }" { (expression_statement "*(undefined4 *)puVar4 = 1;" (assignment_expression "*(undefined4 *)puVar4 = 1" (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) (expression_statement "puVar3 = PTR_is_tty_0004ec20;" (assignment_expression "puVar3 = PTR_is_tty_0004ec20" identifier = identifier) ;) (expression_statement "uVar6 = (*(code *)PTR_isatty_0004f294)(1);" (assignment_expression "uVar6 = (*(code *)PTR_isatty_0004f294)(1)" identifier = (call_expression "(*(code *)PTR_isatty_0004f294)(1)" (parenthesized_expression "(*(code *)PTR_isatty_0004f294)" ( (pointer_expression "*(code *)PTR_isatty_0004f294" * (cast_expression "(code *)PTR_isatty_0004f294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)puVar3 = uVar6;" (assignment_expression "*(undefined4 *)puVar3 = uVar6" (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "get_term();" (call_expression "get_term()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_cmds();" (call_expression "init_cmds()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_charset();" (call_expression "init_charset()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_line();" (call_expression "init_line()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_cmdhist();" (call_expression "init_cmdhist()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_option();" (call_expression "init_option()" identifier (argument_list "()" ( ))) ;) (expression_statement "init_search();" (call_expression "init_search()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = *(uint *)puVar10;" (assignment_expression "uVar11 = *(uint *)puVar10" identifier = (pointer_expression "*(uint *)puVar10" * (cast_expression "(uint *)puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);" (assignment_expression "iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11)" identifier = (call_expression "(*(code *)PTR_strlen_0004f30c)(uVar11)" (parenthesized_expression "(*(code *)PTR_strlen_0004f30c)" ( (pointer_expression "*(code *)PTR_strlen_0004f30c" * (cast_expression "(code *)PTR_strlen_0004f30c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11)" ( identifier )))) ;) (expression_statement "uVar9 = uVar11 + iVar7;" (assignment_expression "uVar9 = uVar11 + iVar7" identifier = (binary_expression "uVar11 + iVar7" identifier + identifier)) ;) (if_statement "if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }" if (parenthesized_expression "(uVar11 < uVar9)" ( (binary_expression "uVar11 < uVar9" identifier < identifier) )) (compound_statement "{\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }" { (expression_statement "cVar1 = *(char *)(uVar9 - 1);" (assignment_expression "cVar1 = *(char *)(uVar9 - 1)" identifier = (pointer_expression "*(char *)(uVar9 - 1)" * (cast_expression "(char *)(uVar9 - 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 - 1)" ( (binary_expression "uVar9 - 1" identifier - number_literal) ))))) ;) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" identifier = identifier) ;) (while_statement "while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }" while (parenthesized_expression "((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9)))" ( (parenthesized_expression "(uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))" ( (comma_expression "uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9)" (assignment_expression "uVar9 = uVar2" identifier = identifier) , (binary_expression "cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9)" (binary_expression "cVar1 != '/'" identifier != (char_literal "'/'" ' character ')) && (parenthesized_expression "(uVar9 = uVar2 - 1, uVar11 != uVar9)" ( (comma_expression "uVar9 = uVar2 - 1, uVar11 != uVar9" (assignment_expression "uVar9 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) , (binary_expression "uVar11 != uVar9" identifier != identifier)) )))) )) )) (compound_statement "{\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }" { (expression_statement "cVar1 = *(char *)(uVar2 - 2);" (assignment_expression "cVar1 = *(char *)(uVar2 - 2)" identifier = (pointer_expression "*(char *)(uVar2 - 2)" * (cast_expression "(char *)(uVar2 - 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar2 - 2)" ( (binary_expression "uVar2 - 2" identifier - number_literal) ))))) ;) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" identifier = identifier) ;) })) })) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0)" identifier = (call_expression "(*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" ( (pointer_expression "*(code *)PTR_strcmp_0004f39c" * (cast_expression "(code *)PTR_strcmp_0004f39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9,PTR_LAB_0004ec08 + 0x68a0)" ( identifier , (binary_expression "PTR_LAB_0004ec08 + 0x68a0" identifier + number_literal) )))) ;) (expression_statement "piVar12 = (int *)PTR_less_is_more_0004ec68;" (assignment_expression "piVar12 = (int *)PTR_less_is_more_0004ec68" identifier = (cast_expression "(int *)PTR_less_is_more_0004ec68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar7 == 0) goto LAB_00015528;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015528;" goto statement_identifier ;)) (do_statement "do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );" do (compound_statement "{\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  }" { (expression_statement "init_prompt();" (call_expression "init_prompt()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }" if (parenthesized_expression "(*piVar12 == 0)" ( (binary_expression "*piVar12 == 0" (pointer_expression "*piVar12" * identifier) == number_literal) )) (compound_statement "{\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }" { (expression_statement "puVar10 = PTR_LAB_0004ec08 + 0x688c;" (assignment_expression "puVar10 = PTR_LAB_0004ec08 + 0x688c" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x688c" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }" else (compound_statement "{\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }" { (expression_statement "puVar10 = PTR_LAB_0004ec08 + 0x68b0;" (assignment_expression "puVar10 = PTR_LAB_0004ec08 + 0x68b0" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x68b0" identifier + number_literal)) ;) }))) (expression_statement "iVar7 = lgetenv(puVar10);" (assignment_expression "iVar7 = lgetenv(puVar10)" identifier = (call_expression "lgetenv(puVar10)" identifier (argument_list "(puVar10)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }" { (expression_statement "uVar6 = save(iVar7);" (assignment_expression "uVar6 = save(iVar7)" identifier = (call_expression "save(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "scan_option(uVar6);" (call_expression "scan_option(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) (if_statement "if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }" if (parenthesized_expression "(0 < param_1)" ( (binary_expression "0 < param_1" number_literal < identifier) )) (compound_statement "{\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }" { (expression_statement "puVar10 = PTR_LAB_0004ec08 + 0x68b8;" (assignment_expression "puVar10 = PTR_LAB_0004ec08 + 0x68b8" identifier = (binary_expression "PTR_LAB_0004ec08 + 0x68b8" identifier + number_literal)) ;) (do_statement "do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );" do (compound_statement "{\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      }" { (expression_statement "pcVar5 = (char *)*piVar13;" (assignment_expression "pcVar5 = (char *)*piVar13" identifier = (cast_expression "(char *)*piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (if_statement "if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }" if (parenthesized_expression "(((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0'))" ( (binary_expression "((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')" (parenthesized_expression "((*pcVar5 != '-') && (*pcVar5 != '+'))" ( (binary_expression "(*pcVar5 != '-') && (*pcVar5 != '+')" (parenthesized_expression "(*pcVar5 != '-')" ( (binary_expression "*pcVar5 != '-'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'-'" ' character ')) )) && (parenthesized_expression "(*pcVar5 != '+')" ( (binary_expression "*pcVar5 != '+'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'+'" ' character ')) ))) )) || (parenthesized_expression "(pcVar5[1] == '\0')" ( (binary_expression "pcVar5[1] == '\0'" (subscript_expression "pcVar5[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }" { (expression_statement "iVar7 = isoptpending();" (assignment_expression "iVar7 = isoptpending()" identifier = (call_expression "isoptpending()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar5 = (char *)*piVar13;" (assignment_expression "pcVar5 = (char *)*piVar13" identifier = (cast_expression "(char *)*piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) })) (expression_statement "piVar13 = piVar13 + 1;" (assignment_expression "piVar13 = piVar13 + 1" identifier = (binary_expression "piVar13 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10)" identifier = (call_expression "(*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" ( (pointer_expression "*(code *)PTR_strcmp_0004f39c" * (cast_expression "(code *)PTR_strcmp_0004f39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5,puVar10)" ( identifier , identifier )))) ;) (expression_statement "param_1 = param_1 + -1;" (assignment_expression "param_1 = param_1 + -1" identifier = (binary_expression "param_1 + -1" identifier + number_literal)) ;) (if_statement "if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;" if (parenthesized_expression "((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0))" ( (binary_expression "(iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(scan_option(pcVar5), param_1 == 0)" ( (comma_expression "scan_option(pcVar5), param_1 == 0" (call_expression "scan_option(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) , (binary_expression "param_1 == 0" identifier == number_literal)) ))) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar7 = isoptpending();" (assignment_expression "iVar7 = isoptpending()" identifier = (call_expression "isoptpending()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar14 = (code *)PTR_nopendopt_0004ec7c;" (assignment_expression "pcVar14 = (code *)PTR_nopendopt_0004ec7c" identifier = (cast_expression "(code *)PTR_nopendopt_0004ec7c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar7 == 0) goto LAB_00015348;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015348;" goto statement_identifier ;)) (labeled_statement "LAB_00015330:\n    (*pcVar14)();" statement_identifier : (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "quit(0);" (call_expression "quit(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_00015348:\n    puVar10 = PTR_editor_0004ec80;" statement_identifier : (expression_statement "puVar10 = PTR_editor_0004ec80;" (assignment_expression "puVar10 = PTR_editor_0004ec80" identifier = identifier) ;)) (expression_statement "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);" (assignment_expression "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc)" identifier = (cast_expression "(char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68bc)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68bc)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68bc" identifier + number_literal) ))))) ;) (expression_statement "*(char **)puVar10 = pcVar5;" (assignment_expression "*(char **)puVar10 = pcVar5" (pointer_expression "*(char **)puVar10" * (cast_expression "(char **)puVar10" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }" if (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" ( (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }" { (expression_statement "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);" (assignment_expression "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4)" identifier = (cast_expression "(char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68c4)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68c4)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68c4" identifier + number_literal) ))))) ;) (expression_statement "*(char **)puVar10 = pcVar5;" (assignment_expression "*(char **)puVar10 = pcVar5" (pointer_expression "*(char **)puVar10" * (cast_expression "(char **)puVar10" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }" if (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" ( (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }" { (expression_statement "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;" (assignment_expression "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc" (pointer_expression "*(undefined **)puVar10" * (cast_expression "(undefined **)puVar10" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "PTR_LAB_0004ec08 + 0x68cc" identifier + number_literal)) ;) })) })) (expression_statement "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);" (assignment_expression "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc)" identifier = (cast_expression "(char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68dc)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68dc)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68dc" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = PTR_editproto_0004ec84;" (assignment_expression "puVar10 = PTR_editproto_0004ec84" identifier = identifier) ;) (expression_statement "*(char **)PTR_editproto_0004ec84 = pcVar5;" (assignment_expression "*(char **)PTR_editproto_0004ec84 = pcVar5" (pointer_expression "*(char **)PTR_editproto_0004ec84" * (cast_expression "(char **)PTR_editproto_0004ec84" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }" if (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" ( (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }" { (expression_statement "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;" (assignment_expression "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8" (pointer_expression "*(undefined **)puVar10" * (cast_expression "(undefined **)puVar10" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "PTR_LAB_0004ec08 + 0x68e8" identifier + number_literal)) ;) })) (if_statement "if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;" if (parenthesized_expression "(*(int *)PTR_dohelp_0004ec88 != 0)" ( (binary_expression "*(int *)PTR_dohelp_0004ec88 != 0" (pointer_expression "*(int *)PTR_dohelp_0004ec88" * (cast_expression "(int *)PTR_dohelp_0004ec88" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (goto_statement "goto LAB_00015654;" goto statement_identifier ;)) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }" { (expression_statement "iVar7 = param_1 + -1;" (assignment_expression "iVar7 = param_1 + -1" identifier = (binary_expression "param_1 + -1" identifier + number_literal)) ;) (if_statement "if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" if (parenthesized_expression "(param_1 < 1)" ( (binary_expression "param_1 < 1" identifier < number_literal) )) (compound_statement "{\n        iVar7 = *(int *)puVar3;\n      }" { (expression_statement "iVar7 = *(int *)puVar3;" (assignment_expression "iVar7 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) (else_clause "else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" else (compound_statement "{\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" { (do_statement "do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);" do (compound_statement "{\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        }" { (expression_statement "iVar8 = shell_quote(*piVar13);" (assignment_expression "iVar8 = shell_quote(*piVar13)" identifier = (call_expression "shell_quote(*piVar13)" identifier (argument_list "(*piVar13)" ( (pointer_expression "*piVar13" * identifier) )))) ;) (if_statement "if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar8 = *piVar13;\n          }" { (expression_statement "iVar8 = *piVar13;" (assignment_expression "iVar8 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) })) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "get_ifile(iVar8,uVar6);" (call_expression "get_ifile(iVar8,uVar6)" identifier (argument_list "(iVar8,uVar6)" ( identifier , identifier ))) ;) (expression_statement "piVar13 = piVar13 + 1;" (assignment_expression "piVar13 = piVar13 + 1" identifier = (binary_expression "piVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = prev_ifile(0);" (assignment_expression "uVar6 = prev_ifile(0)" identifier = (call_expression "prev_ifile(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "(*(code *)PTR_free_0004f37c)(iVar8);" (call_expression "(*(code *)PTR_free_0004f37c)(iVar8)" (parenthesized_expression "(*(code *)PTR_free_0004f37c)" ( (pointer_expression "*(code *)PTR_free_0004f37c" * (cast_expression "(code *)PTR_free_0004f37c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8)" ( identifier ))) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "iVar7 = *(int *)puVar3;" (assignment_expression "iVar7 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) }))) (if_statement "if (iVar7 != 0) break;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" identifier = (call_expression "nifile()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }" { (expression_statement "iVar7 = edit_stdin();" (assignment_expression "iVar7 = edit_stdin()" identifier = (call_expression "edit_stdin()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n          cat_file();\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          cat_file();\n        }" { (expression_statement "cat_file();" (call_expression "cat_file()" identifier (argument_list "()" ( ))) ;) })) }) (else_clause "else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" else (compound_statement "{\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" { (expression_statement "iVar7 = edit_first();" (assignment_expression "iVar7 = edit_first()" identifier = (call_expression "edit_first()" identifier (argument_list "()" ( )))) ;) (while_statement "while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }" while (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          cat_file();\n          iVar7 = edit_next(1);\n        }" { (expression_statement "cat_file();" (call_expression "cat_file()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = edit_next(1);" (assignment_expression "iVar7 = edit_next(1)" identifier = (call_expression "edit_next(1)" identifier (argument_list "(1)" ( number_literal )))) ;) })) }))) (expression_statement "quit(0);" (call_expression "quit(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);" statement_identifier : (expression_statement "uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);" (assignment_expression "uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8)" identifier = (call_expression "get_ifile(PTR_LAB_0004ec08 + 0x68f8)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68f8)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68f8" identifier + number_literal) )))) ;)) })) (if_statement "if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }" if (parenthesized_expression "((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0))" ( (binary_expression "(*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)" (parenthesized_expression "(*(int *)PTR_missing_cap_0004ec98 != 0)" ( (binary_expression "*(int *)PTR_missing_cap_0004ec98 != 0" (pointer_expression "*(int *)PTR_missing_cap_0004ec98" * (cast_expression "(int *)PTR_missing_cap_0004ec98" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) && (parenthesized_expression "(*(int *)PTR_know_dumb_0004eca0 == 0)" ( (binary_expression "*(int *)PTR_know_dumb_0004eca0 == 0" (pointer_expression "*(int *)PTR_know_dumb_0004eca0" * (cast_expression "(int *)PTR_know_dumb_0004eca0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) ))) )) (compound_statement "{\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }" { (expression_statement "error(PTR_LAB_0004ec08 + 0x6910,0);" (call_expression "error(PTR_LAB_0004ec08 + 0x6910,0)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x6910,0)" ( (binary_expression "PTR_LAB_0004ec08 + 0x6910" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "puVar10 = PTR_tagoption_0004eca4;" (assignment_expression "puVar10 = PTR_tagoption_0004eca4" identifier = identifier) ;) (expression_statement "init_mark();" (call_expression "init_mark()" identifier (argument_list "()" ( ))) ;) (expression_statement "open_getchr();" (call_expression "open_getchr()" identifier (argument_list "()" ( ))) ;) (expression_statement "raw_mode(1);" (call_expression "raw_mode(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "init_signals(1);" (call_expression "init_signals(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (if_statement "if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }" if (parenthesized_expression "(*(int *)puVar10 == 0)" ( (binary_expression "*(int *)puVar10 == 0" (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }" { (expression_statement "ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;" (assignment_expression "ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4" identifier = (pointer_expression "*(EVP_PKEY_CTX **)PTR_tags_0004ecb4" * (cast_expression "(EVP_PKEY_CTX **)PTR_tags_0004ecb4" ( (type_descriptor "EVP_PKEY_CTX **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c)" identifier = (call_expression "(*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" ( (pointer_expression "*(code *)PTR_strcmp_0004f39c" * (cast_expression "(code *)PTR_strcmp_0004f39c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ctx,PTR_LAB_0004ec08 + 0x693c)" ( identifier , (binary_expression "PTR_LAB_0004ec08 + 0x693c" identifier + number_literal) )))) ;) (if_statement "if (iVar7 == 0) goto LAB_000154f0;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000154f0;" goto statement_identifier ;)) (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" identifier = (call_expression "nifile()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = edit_stdin();\n      }" { (expression_statement "iVar7 = edit_stdin();" (assignment_expression "iVar7 = edit_stdin()" identifier = (call_expression "edit_stdin()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n        iVar7 = edit_first();\n      }" else (compound_statement "{\n        iVar7 = edit_first();\n      }" { (expression_statement "iVar7 = edit_first();" (assignment_expression "iVar7 = edit_first()" identifier = (call_expression "edit_first()" identifier (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar7 != 0) goto LAB_0001559c;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001559c;" goto statement_identifier ;)) (goto_statement "goto LAB_000155f8;" goto statement_identifier ;) })) (labeled_statement "LAB_000154f0:\n    iVar7 = nifile();" statement_identifier : (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" identifier = (call_expression "nifile()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }" { (do_statement "do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );" do (compound_statement "{\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      }" { (expression_statement "findtag(*(undefined4 *)puVar10);" (call_expression "findtag(*(undefined4 *)puVar10)" identifier (argument_list "(*(undefined4 *)puVar10)" ( (pointer_expression "*(undefined4 *)puVar10" * (cast_expression "(undefined4 *)puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "iVar7 = edit_tagfile();" (assignment_expression "iVar7 = edit_tagfile()" identifier = (call_expression "edit_tagfile()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }" { (expression_statement "lVar15 = tagsearch();" (assignment_expression "lVar15 = tagsearch()" identifier = (call_expression "tagsearch()" identifier (argument_list "()" ( )))) ;) (expression_statement "ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;" (assignment_expression "ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8" identifier = (cast_expression "(EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;" (assignment_expression "*(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15" (pointer_expression "*(longlong *)PTR_initial_scrpos_0004ecc8" * (cast_expression "(longlong *)PTR_initial_scrpos_0004ecc8" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (lVar15 != -1) goto LAB_000155f0;" if (parenthesized_expression "(lVar15 != -1)" ( (binary_expression "lVar15 != -1" identifier != number_literal) )) (goto_statement "goto LAB_000155f0;" goto statement_identifier ;)) })) (labeled_statement "LAB_0001559c:\n        quit(1);" statement_identifier : (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "error(PTR_LAB_0004ec08 + 0x6940,0);" (call_expression "error(PTR_LAB_0004ec08 + 0x6940,0)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x6940,0)" ( (binary_expression "PTR_LAB_0004ec08 + 0x6940" identifier + number_literal) , number_literal ))) ;) (expression_statement "quit(1);" (call_expression "quit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (labeled_statement "LAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);" statement_identifier : (expression_statement "iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);" (assignment_expression "iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8)" identifier = (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68a8)" identifier (argument_list "(PTR_LAB_0004ec08 + 0x68a8)" ( (binary_expression "PTR_LAB_0004ec08 + 0x68a8" identifier + number_literal) )))) ;)) (expression_statement "piVar12 = (int *)PTR_less_is_more_0004ec68;" (assignment_expression "piVar12 = (int *)PTR_less_is_more_0004ec68" identifier = (cast_expression "(int *)PTR_less_is_more_0004ec68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }" { (expression_statement "*(undefined4 *)PTR_less_is_more_0004ec68 = 1;" (assignment_expression "*(undefined4 *)PTR_less_is_more_0004ec68 = 1" (pointer_expression "*(undefined4 *)PTR_less_is_more_0004ec68" * (cast_expression "(undefined4 *)PTR_less_is_more_0004ec68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;" statement_identifier : (expression_statement "*(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;" (assignment_expression "*(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc" (pointer_expression "*(undefined4 *)(ctx + 8)" * (cast_expression "(undefined4 *)(ctx + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ctx + 8)" ( (binary_expression "ctx + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)PTR_jump_sline_0004eccc" * (cast_expression "(undefined4 *)PTR_jump_sline_0004eccc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (labeled_statement "LAB_000155f8:\n  init(ctx);" statement_identifier : (expression_statement "init(ctx);" (call_expression "init(ctx)" identifier (argument_list "(ctx)" ( identifier ))) ;)) (expression_statement "pcVar14 = (code *)PTR_commands_0004ecd4;" (assignment_expression "pcVar14 = (code *)PTR_commands_0004ecd4" identifier = (cast_expression "(code *)PTR_commands_0004ecd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00015330;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 (pointer_declarator * 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 ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (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 ( ))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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 = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != (char_literal ' character ')) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (binary_expression IDENT != IDENT)) )))) )) )) (compound_statement { (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 = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( IDENT ))) , (binary_expression IDENT == LIT)) ))) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_expression IDENT + LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) })) }) while (parenthesized_expression ( BOOL )) ;) (labeled_statement statement_identifier : (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 *)) ) IDENT))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void main(int param_1,undefined4 *param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined *puVar10;\n  EVP_PKEY_CTX *ctx;\n  uint uVar11;\n  int *piVar12;\n  int *piVar13;\n  code *pcVar14;\n  longlong lVar15;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar10 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  param_1 = param_1 + -1;\n  piVar13 = param_2 + 1;\n  *(undefined4 *)PTR_progname_0004ec44 = *param_2;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = (char *)lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar11 = *(uint *)puVar10;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);\n  uVar9 = uVar11 + iVar7;\n  if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);\n  piVar12 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar14 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}" (primitive_type "void") (function_declarator "main(int param_1,undefined4 *param_2)" (identifier "main") (parameter_list "(int param_1,undefined4 *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined *puVar10;\n  EVP_PKEY_CTX *ctx;\n  uint uVar11;\n  int *piVar12;\n  int *piVar13;\n  code *pcVar14;\n  longlong lVar15;\n  \n  puVar4 = PTR_secure_0004ec48;\n  puVar10 = PTR_progname_0004ec44;\n  puVar3 = PTR_LAB_0004ec08;\n  param_1 = param_1 + -1;\n  piVar13 = param_2 + 1;\n  *(undefined4 *)PTR_progname_0004ec44 = *param_2;\n  *(undefined4 *)puVar4 = 0;\n  pcVar5 = (char *)lgetenv(puVar3 + 0x6894);\n  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }\n  puVar3 = PTR_is_tty_0004ec20;\n  uVar6 = (*(code *)PTR_isatty_0004f294)(1);\n  *(undefined4 *)puVar3 = uVar6;\n  get_term();\n  init_cmds();\n  init_charset();\n  init_line();\n  init_cmdhist();\n  init_option();\n  init_search();\n  uVar11 = *(uint *)puVar10;\n  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);\n  uVar9 = uVar11 + iVar7;\n  if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }\n  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);\n  piVar12 = (int *)PTR_less_is_more_0004ec68;\n  if (iVar7 == 0) goto LAB_00015528;\n  do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );\nLAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;\nLAB_000155f8:\n  init(ctx);\n  pcVar14 = (code *)PTR_commands_0004ecd4;\n  goto LAB_00015330;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "EVP_PKEY_CTX *ctx;" (type_identifier "EVP_PKEY_CTX") (pointer_declarator "*ctx" (* "*") (identifier "ctx")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "longlong lVar15;" (type_identifier "longlong") (identifier "lVar15") (; ";")) (expression_statement "puVar4 = PTR_secure_0004ec48;" (assignment_expression "puVar4 = PTR_secure_0004ec48" (identifier "puVar4") (= "=") (identifier "PTR_secure_0004ec48")) (; ";")) (expression_statement "puVar10 = PTR_progname_0004ec44;" (assignment_expression "puVar10 = PTR_progname_0004ec44" (identifier "puVar10") (= "=") (identifier "PTR_progname_0004ec44")) (; ";")) (expression_statement "puVar3 = PTR_LAB_0004ec08;" (assignment_expression "puVar3 = PTR_LAB_0004ec08" (identifier "puVar3") (= "=") (identifier "PTR_LAB_0004ec08")) (; ";")) (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 "piVar13 = param_2 + 1;" (assignment_expression "piVar13 = param_2 + 1" (identifier "piVar13") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)PTR_progname_0004ec44 = *param_2;" (assignment_expression "*(undefined4 *)PTR_progname_0004ec44 = *param_2" (pointer_expression "*(undefined4 *)PTR_progname_0004ec44" (* "*") (cast_expression "(undefined4 *)PTR_progname_0004ec44" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_progname_0004ec44"))) (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "*(undefined4 *)puVar4 = 0;" (assignment_expression "*(undefined4 *)puVar4 = 0" (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar5 = (char *)lgetenv(puVar3 + 0x6894);" (assignment_expression "pcVar5 = (char *)lgetenv(puVar3 + 0x6894)" (identifier "pcVar5") (= "=") (cast_expression "(char *)lgetenv(puVar3 + 0x6894)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "lgetenv(puVar3 + 0x6894)" (identifier "lgetenv") (argument_list "(puVar3 + 0x6894)" (( "(") (binary_expression "puVar3 + 0x6894" (identifier "puVar3") (+ "+") (number_literal "0x6894")) () ")"))))) (; ";")) (if_statement "if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {\n    *(undefined4 *)puVar4 = 1;\n  }" (if "if") (parenthesized_expression "((pcVar5 != (char *)0x0) && (*pcVar5 != '\0'))" (( "(") (binary_expression "(pcVar5 != (char *)0x0) && (*pcVar5 != '\0')" (parenthesized_expression "(pcVar5 != (char *)0x0)" (( "(") (binary_expression "pcVar5 != (char *)0x0" (identifier "pcVar5") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar5 != '\0')" (( "(") (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    *(undefined4 *)puVar4 = 1;\n  }" ({ "{") (expression_statement "*(undefined4 *)puVar4 = 1;" (assignment_expression "*(undefined4 *)puVar4 = 1" (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "puVar3 = PTR_is_tty_0004ec20;" (assignment_expression "puVar3 = PTR_is_tty_0004ec20" (identifier "puVar3") (= "=") (identifier "PTR_is_tty_0004ec20")) (; ";")) (expression_statement "uVar6 = (*(code *)PTR_isatty_0004f294)(1);" (assignment_expression "uVar6 = (*(code *)PTR_isatty_0004f294)(1)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_isatty_0004f294)(1)" (parenthesized_expression "(*(code *)PTR_isatty_0004f294)" (( "(") (pointer_expression "*(code *)PTR_isatty_0004f294" (* "*") (cast_expression "(code *)PTR_isatty_0004f294" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_isatty_0004f294"))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (expression_statement "*(undefined4 *)puVar3 = uVar6;" (assignment_expression "*(undefined4 *)puVar3 = uVar6" (pointer_expression "*(undefined4 *)puVar3" (* "*") (cast_expression "(undefined4 *)puVar3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "get_term();" (call_expression "get_term()" (identifier "get_term") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "init_cmds();" (call_expression "init_cmds()" (identifier "init_cmds") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "init_charset();" (call_expression "init_charset()" (identifier "init_charset") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "init_line();" (call_expression "init_line()" (identifier "init_line") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "init_cmdhist();" (call_expression "init_cmdhist()" (identifier "init_cmdhist") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "init_option();" (call_expression "init_option()" (identifier "init_option") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "init_search();" (call_expression "init_search()" (identifier "init_search") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar11 = *(uint *)puVar10;" (assignment_expression "uVar11 = *(uint *)puVar10" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)puVar10" (* "*") (cast_expression "(uint *)puVar10" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) (; ";")) (expression_statement "iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);" (assignment_expression "iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_strlen_0004f30c)(uVar11)" (parenthesized_expression "(*(code *)PTR_strlen_0004f30c)" (( "(") (pointer_expression "*(code *)PTR_strlen_0004f30c" (* "*") (cast_expression "(code *)PTR_strlen_0004f30c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0004f30c"))) () ")")) (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")")))) (; ";")) (expression_statement "uVar9 = uVar11 + iVar7;" (assignment_expression "uVar9 = uVar11 + iVar7" (identifier "uVar9") (= "=") (binary_expression "uVar11 + iVar7" (identifier "uVar11") (+ "+") (identifier "iVar7"))) (; ";")) (if_statement "if (uVar11 < uVar9) {\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }" (if "if") (parenthesized_expression "(uVar11 < uVar9)" (( "(") (binary_expression "uVar11 < uVar9" (identifier "uVar11") (< "<") (identifier "uVar9")) () ")")) (compound_statement "{\n    cVar1 = *(char *)(uVar9 - 1);\n    uVar2 = uVar9;\n    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }\n  }" ({ "{") (expression_statement "cVar1 = *(char *)(uVar9 - 1);" (assignment_expression "cVar1 = *(char *)(uVar9 - 1)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(uVar9 - 1)" (* "*") (cast_expression "(char *)(uVar9 - 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar9 - 1)" (( "(") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" (identifier "uVar2") (= "=") (identifier "uVar9")) (; ";")) (while_statement "while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }" (while "while") (parenthesized_expression "((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9)))" (( "(") (parenthesized_expression "(uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))" (( "(") (comma_expression "uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9)" (assignment_expression "uVar9 = uVar2" (identifier "uVar9") (= "=") (identifier "uVar2")) (, ",") (binary_expression "cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9)" (binary_expression "cVar1 != '/'" (identifier "cVar1") (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) (&& "&&") (parenthesized_expression "(uVar9 = uVar2 - 1, uVar11 != uVar9)" (( "(") (comma_expression "uVar9 = uVar2 - 1, uVar11 != uVar9" (assignment_expression "uVar9 = uVar2 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar2 - 1" (identifier "uVar2") (- "-") (number_literal "1"))) (, ",") (binary_expression "uVar11 != uVar9" (identifier "uVar11") (!= "!=") (identifier "uVar9"))) () ")")))) () ")")) () ")")) (compound_statement "{\n      cVar1 = *(char *)(uVar2 - 2);\n      uVar2 = uVar9;\n    }" ({ "{") (expression_statement "cVar1 = *(char *)(uVar2 - 2);" (assignment_expression "cVar1 = *(char *)(uVar2 - 2)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(uVar2 - 2)" (* "*") (cast_expression "(char *)(uVar2 - 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar2 - 2)" (( "(") (binary_expression "uVar2 - 2" (identifier "uVar2") (- "-") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" (identifier "uVar2") (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0004f39c" (* "*") (cast_expression "(code *)PTR_strcmp_0004f39c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0004f39c"))) () ")")) (argument_list "(uVar9,PTR_LAB_0004ec08 + 0x68a0)" (( "(") (identifier "uVar9") (, ",") (binary_expression "PTR_LAB_0004ec08 + 0x68a0" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x68a0")) () ")")))) (; ";")) (expression_statement "piVar12 = (int *)PTR_less_is_more_0004ec68;" (assignment_expression "piVar12 = (int *)PTR_less_is_more_0004ec68" (identifier "piVar12") (= "=") (cast_expression "(int *)PTR_less_is_more_0004ec68" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_less_is_more_0004ec68"))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_00015528;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015528;" (goto "goto") (statement_identifier "LAB_00015528") (; ";"))) (do_statement "do {\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    init_prompt();\n    if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }\n    iVar7 = lgetenv(puVar10);\n    if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }\n    if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }\n    iVar7 = isoptpending();\n    pcVar14 = (code *)PTR_nopendopt_0004ec7c;\n    if (iVar7 == 0) goto LAB_00015348;\nLAB_00015330:\n    (*pcVar14)();\n    quit(0);\nLAB_00015348:\n    puVar10 = PTR_editor_0004ec80;\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);\n    *(char **)puVar10 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }\n    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);\n    puVar10 = PTR_editproto_0004ec84;\n    *(char **)PTR_editproto_0004ec84 = pcVar5;\n    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }\n    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;\n    uVar6 = 0;\n    while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }\n    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }\n    puVar10 = PTR_tagoption_0004eca4;\n    init_mark();\n    open_getchr();\n    raw_mode(1);\n    init_signals(1);\n    if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }\nLAB_000154f0:\n    iVar7 = nifile();\n    if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }\n    error(PTR_LAB_0004ec08 + 0x6940,0);\n    quit(1);\nLAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);\n    piVar12 = (int *)PTR_less_is_more_0004ec68;\n    if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }\n  }" ({ "{") (expression_statement "init_prompt();" (call_expression "init_prompt()" (identifier "init_prompt") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*piVar12 == 0) {\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }\n    else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }" (if "if") (parenthesized_expression "(*piVar12 == 0)" (( "(") (binary_expression "*piVar12 == 0" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar10 = PTR_LAB_0004ec08 + 0x688c;\n    }" ({ "{") (expression_statement "puVar10 = PTR_LAB_0004ec08 + 0x688c;" (assignment_expression "puVar10 = PTR_LAB_0004ec08 + 0x688c" (identifier "puVar10") (= "=") (binary_expression "PTR_LAB_0004ec08 + 0x688c" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x688c"))) (; ";")) (} "}")) (else_clause "else {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }" (else "else") (compound_statement "{\n      puVar10 = PTR_LAB_0004ec08 + 0x68b0;\n    }" ({ "{") (expression_statement "puVar10 = PTR_LAB_0004ec08 + 0x68b0;" (assignment_expression "puVar10 = PTR_LAB_0004ec08 + 0x68b0" (identifier "puVar10") (= "=") (binary_expression "PTR_LAB_0004ec08 + 0x68b0" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x68b0"))) (; ";")) (} "}")))) (expression_statement "iVar7 = lgetenv(puVar10);" (assignment_expression "iVar7 = lgetenv(puVar10)" (identifier "iVar7") (= "=") (call_expression "lgetenv(puVar10)" (identifier "lgetenv") (argument_list "(puVar10)" (( "(") (identifier "puVar10") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = save(iVar7);\n      scan_option(uVar6);\n    }" ({ "{") (expression_statement "uVar6 = save(iVar7);" (assignment_expression "uVar6 = save(iVar7)" (identifier "uVar6") (= "=") (call_expression "save(iVar7)" (identifier "save") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "scan_option(uVar6);" (call_expression "scan_option(uVar6)" (identifier "scan_option") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (if_statement "if (0 < param_1) {\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(0 < param_1)" (( "(") (binary_expression "0 < param_1" (number_literal "0") (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n      puVar10 = PTR_LAB_0004ec08 + 0x68b8;\n      do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );\n    }" ({ "{") (expression_statement "puVar10 = PTR_LAB_0004ec08 + 0x68b8;" (assignment_expression "puVar10 = PTR_LAB_0004ec08 + 0x68b8" (identifier "puVar10") (= "=") (binary_expression "PTR_LAB_0004ec08 + 0x68b8" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x68b8"))) (; ";")) (do_statement "do {\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      } while( true );" (do "do") (compound_statement "{\n        pcVar5 = (char *)*piVar13;\n        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }\n        piVar13 = piVar13 + 1;\n        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);\n        param_1 = param_1 + -1;\n        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;\n      }" ({ "{") (expression_statement "pcVar5 = (char *)*piVar13;" (assignment_expression "pcVar5 = (char *)*piVar13" (identifier "pcVar5") (= "=") (cast_expression "(char *)*piVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) (; ";")) (if_statement "if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }" (if "if") (parenthesized_expression "(((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0'))" (( "(") (binary_expression "((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')" (parenthesized_expression "((*pcVar5 != '-') && (*pcVar5 != '+'))" (( "(") (binary_expression "(*pcVar5 != '-') && (*pcVar5 != '+')" (parenthesized_expression "(*pcVar5 != '-')" (( "(") (binary_expression "*pcVar5 != '-'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (!= "!=") (char_literal "'-'" (' "'") (character "-") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar5 != '+')" (( "(") (binary_expression "*pcVar5 != '+'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (!= "!=") (char_literal "'+'" (' "'") (character "+") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pcVar5[1] == '\0')" (( "(") (binary_expression "pcVar5[1] == '\0'" (subscript_expression "pcVar5[1]" (identifier "pcVar5") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          iVar7 = isoptpending();\n          if (iVar7 == 0) break;\n          pcVar5 = (char *)*piVar13;\n        }" ({ "{") (expression_statement "iVar7 = isoptpending();" (assignment_expression "iVar7 = isoptpending()" (identifier "iVar7") (= "=") (call_expression "isoptpending()" (identifier "isoptpending") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar5 = (char *)*piVar13;" (assignment_expression "pcVar5 = (char *)*piVar13" (identifier "pcVar5") (= "=") (cast_expression "(char *)*piVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) (; ";")) (} "}"))) (expression_statement "piVar13 = piVar13 + 1;" (assignment_expression "piVar13 = piVar13 + 1" (identifier "piVar13") (= "=") (binary_expression "piVar13 + 1" (identifier "piVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0004f39c" (* "*") (cast_expression "(code *)PTR_strcmp_0004f39c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0004f39c"))) () ")")) (argument_list "(pcVar5,puVar10)" (( "(") (identifier "pcVar5") (, ",") (identifier "puVar10") () ")")))) (; ";")) (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"))) (; ";")) (if_statement "if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;" (if "if") (parenthesized_expression "((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0))" (( "(") (binary_expression "(iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)" (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(scan_option(pcVar5), param_1 == 0)" (( "(") (comma_expression "scan_option(pcVar5), param_1 == 0" (call_expression "scan_option(pcVar5)" (identifier "scan_option") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")"))) (, ",") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "iVar7 = isoptpending();" (assignment_expression "iVar7 = isoptpending()" (identifier "iVar7") (= "=") (call_expression "isoptpending()" (identifier "isoptpending") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar14 = (code *)PTR_nopendopt_0004ec7c;" (assignment_expression "pcVar14 = (code *)PTR_nopendopt_0004ec7c" (identifier "pcVar14") (= "=") (cast_expression "(code *)PTR_nopendopt_0004ec7c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_nopendopt_0004ec7c"))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_00015348;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015348;" (goto "goto") (statement_identifier "LAB_00015348") (; ";"))) (labeled_statement "LAB_00015330:\n    (*pcVar14)();" (statement_identifier "LAB_00015330") (: ":") (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "quit(0);" (call_expression "quit(0)" (identifier "quit") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_00015348:\n    puVar10 = PTR_editor_0004ec80;" (statement_identifier "LAB_00015348") (: ":") (expression_statement "puVar10 = PTR_editor_0004ec80;" (assignment_expression "puVar10 = PTR_editor_0004ec80" (identifier "puVar10") (= "=") (identifier "PTR_editor_0004ec80")) (; ";"))) (expression_statement "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);" (assignment_expression "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc)" (identifier "pcVar5") (= "=") (cast_expression "(char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68bc)" (identifier "lgetenv") (argument_list "(PTR_LAB_0004ec08 + 0x68bc)" (( "(") (binary_expression "PTR_LAB_0004ec08 + 0x68bc" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x68bc")) () ")"))))) (; ";")) (expression_statement "*(char **)puVar10 = pcVar5;" (assignment_expression "*(char **)puVar10 = pcVar5" (pointer_expression "*(char **)puVar10" (* "*") (cast_expression "(char **)puVar10" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar10"))) (= "=") (identifier "pcVar5")) (; ";")) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }" (if "if") (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" (( "(") (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" (( "(") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*pcVar5 == '\0')" (( "(") (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);\n      *(char **)puVar10 = pcVar5;\n      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }\n    }" ({ "{") (expression_statement "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);" (assignment_expression "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4)" (identifier "pcVar5") (= "=") (cast_expression "(char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68c4)" (identifier "lgetenv") (argument_list "(PTR_LAB_0004ec08 + 0x68c4)" (( "(") (binary_expression "PTR_LAB_0004ec08 + 0x68c4" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x68c4")) () ")"))))) (; ";")) (expression_statement "*(char **)puVar10 = pcVar5;" (assignment_expression "*(char **)puVar10 = pcVar5" (pointer_expression "*(char **)puVar10" (* "*") (cast_expression "(char **)puVar10" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar10"))) (= "=") (identifier "pcVar5")) (; ";")) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }" (if "if") (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" (( "(") (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" (( "(") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*pcVar5 == '\0')" (( "(") (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;\n      }" ({ "{") (expression_statement "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;" (assignment_expression "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc" (pointer_expression "*(undefined **)puVar10" (* "*") (cast_expression "(undefined **)puVar10" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar10"))) (= "=") (binary_expression "PTR_LAB_0004ec08 + 0x68cc" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x68cc"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);" (assignment_expression "pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc)" (identifier "pcVar5") (= "=") (cast_expression "(char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68dc)" (identifier "lgetenv") (argument_list "(PTR_LAB_0004ec08 + 0x68dc)" (( "(") (binary_expression "PTR_LAB_0004ec08 + 0x68dc" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x68dc")) () ")"))))) (; ";")) (expression_statement "puVar10 = PTR_editproto_0004ec84;" (assignment_expression "puVar10 = PTR_editproto_0004ec84" (identifier "puVar10") (= "=") (identifier "PTR_editproto_0004ec84")) (; ";")) (expression_statement "*(char **)PTR_editproto_0004ec84 = pcVar5;" (assignment_expression "*(char **)PTR_editproto_0004ec84 = pcVar5" (pointer_expression "*(char **)PTR_editproto_0004ec84" (* "*") (cast_expression "(char **)PTR_editproto_0004ec84" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_editproto_0004ec84"))) (= "=") (identifier "pcVar5")) (; ";")) (if_statement "if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }" (if "if") (parenthesized_expression "((pcVar5 == (char *)0x0) || (*pcVar5 == '\0'))" (( "(") (binary_expression "(pcVar5 == (char *)0x0) || (*pcVar5 == '\0')" (parenthesized_expression "(pcVar5 == (char *)0x0)" (( "(") (binary_expression "pcVar5 == (char *)0x0" (identifier "pcVar5") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*pcVar5 == '\0')" (( "(") (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;\n    }" ({ "{") (expression_statement "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;" (assignment_expression "*(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8" (pointer_expression "*(undefined **)puVar10" (* "*") (cast_expression "(undefined **)puVar10" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar10"))) (= "=") (binary_expression "PTR_LAB_0004ec08 + 0x68e8" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x68e8"))) (; ";")) (} "}"))) (if_statement "if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;" (if "if") (parenthesized_expression "(*(int *)PTR_dohelp_0004ec88 != 0)" (( "(") (binary_expression "*(int *)PTR_dohelp_0004ec88 != 0" (pointer_expression "*(int *)PTR_dohelp_0004ec88" (* "*") (cast_expression "(int *)PTR_dohelp_0004ec88" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dohelp_0004ec88"))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015654;" (goto "goto") (statement_identifier "LAB_00015654") (; ";"))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar7 = param_1 + -1;\n      if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }\n      if (iVar7 != 0) break;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }\n      quit(0);\nLAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);\n    }" ({ "{") (expression_statement "iVar7 = param_1 + -1;" (assignment_expression "iVar7 = param_1 + -1" (identifier "iVar7") (= "=") (binary_expression "param_1 + -1" (identifier "param_1") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (param_1 < 1) {\n        iVar7 = *(int *)puVar3;\n      }\n      else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" (if "if") (parenthesized_expression "(param_1 < 1)" (( "(") (binary_expression "param_1 < 1" (identifier "param_1") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        iVar7 = *(int *)puVar3;\n      }" ({ "{") (expression_statement "iVar7 = *(int *)puVar3;" (assignment_expression "iVar7 = *(int *)puVar3" (identifier "iVar7") (= "=") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) (; ";")) (} "}")) (else_clause "else {\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" (else "else") (compound_statement "{\n        do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);\n        iVar7 = *(int *)puVar3;\n      }" ({ "{") (do_statement "do {\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        } while (iVar7 != -1);" (do "do") (compound_statement "{\n          iVar8 = shell_quote(*piVar13);\n          if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }\n          iVar7 = iVar7 + -1;\n          get_ifile(iVar8,uVar6);\n          piVar13 = piVar13 + 1;\n          uVar6 = prev_ifile(0);\n          (*(code *)PTR_free_0004f37c)(iVar8);\n        }" ({ "{") (expression_statement "iVar8 = shell_quote(*piVar13);" (assignment_expression "iVar8 = shell_quote(*piVar13)" (identifier "iVar8") (= "=") (call_expression "shell_quote(*piVar13)" (identifier "shell_quote") (argument_list "(*piVar13)" (( "(") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n            iVar8 = *piVar13;\n          }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar8 = *piVar13;\n          }" ({ "{") (expression_statement "iVar8 = *piVar13;" (assignment_expression "iVar8 = *piVar13" (identifier "iVar8") (= "=") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) (; ";")) (} "}"))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "get_ifile(iVar8,uVar6);" (call_expression "get_ifile(iVar8,uVar6)" (identifier "get_ifile") (argument_list "(iVar8,uVar6)" (( "(") (identifier "iVar8") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "piVar13 = piVar13 + 1;" (assignment_expression "piVar13 = piVar13 + 1" (identifier "piVar13") (= "=") (binary_expression "piVar13 + 1" (identifier "piVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = prev_ifile(0);" (assignment_expression "uVar6 = prev_ifile(0)" (identifier "uVar6") (= "=") (call_expression "prev_ifile(0)" (identifier "prev_ifile") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_free_0004f37c)(iVar8);" (call_expression "(*(code *)PTR_free_0004f37c)(iVar8)" (parenthesized_expression "(*(code *)PTR_free_0004f37c)" (( "(") (pointer_expression "*(code *)PTR_free_0004f37c" (* "*") (cast_expression "(code *)PTR_free_0004f37c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0004f37c"))) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != -1)" (( "(") (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (expression_statement "iVar7 = *(int *)puVar3;" (assignment_expression "iVar7 = *(int *)puVar3" (identifier "iVar7") (= "=") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) (; ";")) (} "}")))) (if_statement "if (iVar7 != 0) break;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" (identifier "iVar7") (= "=") (call_expression "nifile()" (identifier "nifile") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }\n      else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = edit_stdin();\n        if (iVar7 == 0) {\n          cat_file();\n        }\n      }" ({ "{") (expression_statement "iVar7 = edit_stdin();" (assignment_expression "iVar7 = edit_stdin()" (identifier "iVar7") (= "=") (call_expression "edit_stdin()" (identifier "edit_stdin") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n          cat_file();\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          cat_file();\n        }" ({ "{") (expression_statement "cat_file();" (call_expression "cat_file()" (identifier "cat_file") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" (else "else") (compound_statement "{\n        iVar7 = edit_first();\n        while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }\n      }" ({ "{") (expression_statement "iVar7 = edit_first();" (assignment_expression "iVar7 = edit_first()" (identifier "iVar7") (= "=") (call_expression "edit_first()" (identifier "edit_first") (argument_list "()" (( "(") () ")")))) (; ";")) (while_statement "while (iVar7 == 0) {\n          cat_file();\n          iVar7 = edit_next(1);\n        }" (while "while") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          cat_file();\n          iVar7 = edit_next(1);\n        }" ({ "{") (expression_statement "cat_file();" (call_expression "cat_file()" (identifier "cat_file") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = edit_next(1);" (assignment_expression "iVar7 = edit_next(1)" (identifier "iVar7") (= "=") (call_expression "edit_next(1)" (identifier "edit_next") (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "quit(0);" (call_expression "quit(0)" (identifier "quit") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_00015654:\n      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);" (statement_identifier "LAB_00015654") (: ":") (expression_statement "uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);" (assignment_expression "uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8)" (identifier "uVar6") (= "=") (call_expression "get_ifile(PTR_LAB_0004ec08 + 0x68f8)" (identifier "get_ifile") (argument_list "(PTR_LAB_0004ec08 + 0x68f8)" (( "(") (binary_expression "PTR_LAB_0004ec08 + 0x68f8" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x68f8")) () ")")))) (; ";"))) (} "}"))) (if_statement "if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }" (if "if") (parenthesized_expression "((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0))" (( "(") (binary_expression "(*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)" (parenthesized_expression "(*(int *)PTR_missing_cap_0004ec98 != 0)" (( "(") (binary_expression "*(int *)PTR_missing_cap_0004ec98 != 0" (pointer_expression "*(int *)PTR_missing_cap_0004ec98" (* "*") (cast_expression "(int *)PTR_missing_cap_0004ec98" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_missing_cap_0004ec98"))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)PTR_know_dumb_0004eca0 == 0)" (( "(") (binary_expression "*(int *)PTR_know_dumb_0004eca0 == 0" (pointer_expression "*(int *)PTR_know_dumb_0004eca0" (* "*") (cast_expression "(int *)PTR_know_dumb_0004eca0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_know_dumb_0004eca0"))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      error(PTR_LAB_0004ec08 + 0x6910,0);\n    }" ({ "{") (expression_statement "error(PTR_LAB_0004ec08 + 0x6910,0);" (call_expression "error(PTR_LAB_0004ec08 + 0x6910,0)" (identifier "error") (argument_list "(PTR_LAB_0004ec08 + 0x6910,0)" (( "(") (binary_expression "PTR_LAB_0004ec08 + 0x6910" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x6910")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar10 = PTR_tagoption_0004eca4;" (assignment_expression "puVar10 = PTR_tagoption_0004eca4" (identifier "puVar10") (= "=") (identifier "PTR_tagoption_0004eca4")) (; ";")) (expression_statement "init_mark();" (call_expression "init_mark()" (identifier "init_mark") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "open_getchr();" (call_expression "open_getchr()" (identifier "open_getchr") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "raw_mode(1);" (call_expression "raw_mode(1)" (identifier "raw_mode") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (expression_statement "init_signals(1);" (call_expression "init_signals(1)" (identifier "init_signals") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (if_statement "if (*(int *)puVar10 == 0) {\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }" (if "if") (parenthesized_expression "(*(int *)puVar10 == 0)" (( "(") (binary_expression "*(int *)puVar10 == 0" (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;\n      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);\n      if (iVar7 == 0) goto LAB_000154f0;\n      iVar7 = nifile();\n      if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }\n      if (iVar7 != 0) goto LAB_0001559c;\n      goto LAB_000155f8;\n    }" ({ "{") (expression_statement "ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;" (assignment_expression "ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4" (identifier "ctx") (= "=") (pointer_expression "*(EVP_PKEY_CTX **)PTR_tags_0004ecb4" (* "*") (cast_expression "(EVP_PKEY_CTX **)PTR_tags_0004ecb4" (( "(") (type_descriptor "EVP_PKEY_CTX **" (type_identifier "EVP_PKEY_CTX") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_tags_0004ecb4")))) (; ";")) (expression_statement "iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);" (assignment_expression "iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c)" (parenthesized_expression "(*(code *)PTR_strcmp_0004f39c)" (( "(") (pointer_expression "*(code *)PTR_strcmp_0004f39c" (* "*") (cast_expression "(code *)PTR_strcmp_0004f39c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_0004f39c"))) () ")")) (argument_list "(ctx,PTR_LAB_0004ec08 + 0x693c)" (( "(") (identifier "ctx") (, ",") (binary_expression "PTR_LAB_0004ec08 + 0x693c" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x693c")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_000154f0;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000154f0;" (goto "goto") (statement_identifier "LAB_000154f0") (; ";"))) (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" (identifier "iVar7") (= "=") (call_expression "nifile()" (identifier "nifile") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n        iVar7 = edit_stdin();\n      }\n      else {\n        iVar7 = edit_first();\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = edit_stdin();\n      }" ({ "{") (expression_statement "iVar7 = edit_stdin();" (assignment_expression "iVar7 = edit_stdin()" (identifier "iVar7") (= "=") (call_expression "edit_stdin()" (identifier "edit_stdin") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        iVar7 = edit_first();\n      }" (else "else") (compound_statement "{\n        iVar7 = edit_first();\n      }" ({ "{") (expression_statement "iVar7 = edit_first();" (assignment_expression "iVar7 = edit_first()" (identifier "iVar7") (= "=") (call_expression "edit_first()" (identifier "edit_first") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar7 != 0) goto LAB_0001559c;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001559c;" (goto "goto") (statement_identifier "LAB_0001559c") (; ";"))) (goto_statement "goto LAB_000155f8;" (goto "goto") (statement_identifier "LAB_000155f8") (; ";")) (} "}"))) (labeled_statement "LAB_000154f0:\n    iVar7 = nifile();" (statement_identifier "LAB_000154f0") (: ":") (expression_statement "iVar7 = nifile();" (assignment_expression "iVar7 = nifile()" (identifier "iVar7") (= "=") (call_expression "nifile()" (identifier "nifile") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar7 < 1) {\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }" (if "if") (parenthesized_expression "(iVar7 < 1)" (( "(") (binary_expression "iVar7 < 1" (identifier "iVar7") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );\n    }" ({ "{") (do_statement "do {\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      } while( true );" (do "do") (compound_statement "{\n        findtag(*(undefined4 *)puVar10);\n        iVar7 = edit_tagfile();\n        if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }\nLAB_0001559c:\n        quit(1);\n      }" ({ "{") (expression_statement "findtag(*(undefined4 *)puVar10);" (call_expression "findtag(*(undefined4 *)puVar10)" (identifier "findtag") (argument_list "(*(undefined4 *)puVar10)" (( "(") (pointer_expression "*(undefined4 *)puVar10" (* "*") (cast_expression "(undefined4 *)puVar10" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10"))) () ")"))) (; ";")) (expression_statement "iVar7 = edit_tagfile();" (assignment_expression "iVar7 = edit_tagfile()" (identifier "iVar7") (= "=") (call_expression "edit_tagfile()" (identifier "edit_tagfile") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          lVar15 = tagsearch();\n          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;\n          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;\n          if (lVar15 != -1) goto LAB_000155f0;\n        }" ({ "{") (expression_statement "lVar15 = tagsearch();" (assignment_expression "lVar15 = tagsearch()" (identifier "lVar15") (= "=") (call_expression "tagsearch()" (identifier "tagsearch") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;" (assignment_expression "ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8" (identifier "ctx") (= "=") (cast_expression "(EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8" (( "(") (type_descriptor "EVP_PKEY_CTX *" (type_identifier "EVP_PKEY_CTX") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_initial_scrpos_0004ecc8"))) (; ";")) (expression_statement "*(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;" (assignment_expression "*(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15" (pointer_expression "*(longlong *)PTR_initial_scrpos_0004ecc8" (* "*") (cast_expression "(longlong *)PTR_initial_scrpos_0004ecc8" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_initial_scrpos_0004ecc8"))) (= "=") (identifier "lVar15")) (; ";")) (if_statement "if (lVar15 != -1) goto LAB_000155f0;" (if "if") (parenthesized_expression "(lVar15 != -1)" (( "(") (binary_expression "lVar15 != -1" (identifier "lVar15") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_000155f0;" (goto "goto") (statement_identifier "LAB_000155f0") (; ";"))) (} "}"))) (labeled_statement "LAB_0001559c:\n        quit(1);" (statement_identifier "LAB_0001559c") (: ":") (expression_statement "quit(1);" (call_expression "quit(1)" (identifier "quit") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "error(PTR_LAB_0004ec08 + 0x6940,0);" (call_expression "error(PTR_LAB_0004ec08 + 0x6940,0)" (identifier "error") (argument_list "(PTR_LAB_0004ec08 + 0x6940,0)" (( "(") (binary_expression "PTR_LAB_0004ec08 + 0x6940" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x6940")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "quit(1);" (call_expression "quit(1)" (identifier "quit") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (labeled_statement "LAB_00015528:\n    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);" (statement_identifier "LAB_00015528") (: ":") (expression_statement "iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);" (assignment_expression "iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8)" (identifier "iVar7") (= "=") (call_expression "lgetenv(PTR_LAB_0004ec08 + 0x68a8)" (identifier "lgetenv") (argument_list "(PTR_LAB_0004ec08 + 0x68a8)" (( "(") (binary_expression "PTR_LAB_0004ec08 + 0x68a8" (identifier "PTR_LAB_0004ec08") (+ "+") (number_literal "0x68a8")) () ")")))) (; ";"))) (expression_statement "piVar12 = (int *)PTR_less_is_more_0004ec68;" (assignment_expression "piVar12 = (int *)PTR_less_is_more_0004ec68" (identifier "piVar12") (= "=") (cast_expression "(int *)PTR_less_is_more_0004ec68" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_less_is_more_0004ec68"))) (; ";")) (if_statement "if (iVar7 == 0) {\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;\n    }" ({ "{") (expression_statement "*(undefined4 *)PTR_less_is_more_0004ec68 = 1;" (assignment_expression "*(undefined4 *)PTR_less_is_more_0004ec68 = 1" (pointer_expression "*(undefined4 *)PTR_less_is_more_0004ec68" (* "*") (cast_expression "(undefined4 *)PTR_less_is_more_0004ec68" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_less_is_more_0004ec68"))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (labeled_statement "LAB_000155f0:\n  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;" (statement_identifier "LAB_000155f0") (: ":") (expression_statement "*(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;" (assignment_expression "*(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc" (pointer_expression "*(undefined4 *)(ctx + 8)" (* "*") (cast_expression "(undefined4 *)(ctx + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ctx + 8)" (( "(") (binary_expression "ctx + 8" (identifier "ctx") (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)PTR_jump_sline_0004eccc" (* "*") (cast_expression "(undefined4 *)PTR_jump_sline_0004eccc" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_jump_sline_0004eccc")))) (; ";"))) (labeled_statement "LAB_000155f8:\n  init(ctx);" (statement_identifier "LAB_000155f8") (: ":") (expression_statement "init(ctx);" (call_expression "init(ctx)" (identifier "init") (argument_list "(ctx)" (( "(") (identifier "ctx") () ")"))) (; ";"))) (expression_statement "pcVar14 = (code *)PTR_commands_0004ecd4;" (assignment_expression "pcVar14 = (code *)PTR_commands_0004ecd4" (identifier "pcVar14") (= "=") (cast_expression "(code *)PTR_commands_0004ecd4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_commands_0004ecd4"))) (; ";")) (goto_statement "goto LAB_00015330;" (goto "goto") (statement_identifier "LAB_00015330") (; ";")) (} "}")))

int function_1(int var_1,char **var_2)

{
  char var_16;
  type_1 var_17;
  type_2 *var_4;
  type_2 *puVar4;
  char *var_5;
  type_3 uVar6;
  int var_14;
  type_1 var_15;
  type_4 *var_43;
  void *prev;
  type_1 var_13;
  int *piVar10;
  char **var_24;
  int var_22;
  type_2 *puVar13;
  void *pvVar14;
  type_5 *pcVar15;
  type_6 var_42;
  
  puVar4 = PTR_secure_0004ec48;
  puVar13 = PTR_progname_0004ec44;
  var_4 = var_18;
  var_22 = var_1 + -1;
  var_24 = var_2 + 1;
  *(char **)PTR_progname_0004ec44 = *var_2;
  *(type_3 *)puVar4 = 0;
  var_5 = var_3(var_4 + 0x6894);
  if ((var_5 != (char *)0x0) && (*var_5 != '\0')) {
    *(type_3 *)puVar4 = 1;
  }
  var_4 = PTR_is_tty_0004ec20;
  uVar6 = (*(type_5 *)PTR_isatty_0004f294)(1);
  *(type_3 *)var_4 = uVar6;
  var_6();
  var_7();
  var_8();
  var_9();
  var_10();
  var_11();
  var_12();
  var_13 = *(type_1 *)puVar13;
  var_14 = (*(type_5 *)PTR_strlen_0004f30c)(var_13);
  var_15 = var_13 + var_14;
  if (var_13 < var_15) {
    var_16 = *(char *)(var_15 - 1);
    var_17 = var_15;
    while ((var_15 = var_17, var_16 != '/' && (var_15 = var_17 - 1, var_13 != var_15))) {
      var_16 = *(char *)(var_17 - 2);
      var_17 = var_15;
    }
  }
  var_14 = (*(type_5 *)PTR_strcmp_0004f39c)(var_15,var_18 + 0x68a0);
  piVar10 = (int *)PTR_less_is_more_0004ec68;
  if (var_14 == 0) goto LAB_00015528;
  do {
    var_19();
    if (*piVar10 == 0) {
      var_5 = var_18 + 0x688c;
    }
    else {
      var_5 = var_18 + 0x68b0;
    }
    var_5 = var_3(var_5);
    if (var_5 != (char *)0x0) {
      var_5 = var_20(var_5);
      var_21(var_5);
    }
    if (0 < var_22) {
      puVar13 = var_18 + 0x68b8;
      do {
        var_5 = *var_24;
        if (((*var_5 != '-') && (*var_5 != '+')) || (var_5[1] == '\0')) {
          var_14 = var_23();
          if (var_14 == 0) break;
          var_5 = *var_24;
        }
        var_24 = var_24 + 1;
        var_14 = (*(type_5 *)PTR_strcmp_0004f39c)(var_5,puVar13);
        var_22 = var_22 + -1;
        if ((var_14 == 0) || (var_21(var_5), var_22 == 0)) break;
      } while( true );
    }
    var_14 = var_23();
    pcVar15 = (type_5 *)PTR_nopendopt_0004ec7c;
    if (var_14 == 0) goto LAB_00015348;
LAB_00015330:
    (*pcVar15)();
    var_25(0);
LAB_00015348:
    puVar13 = PTR_editor_0004ec80;
    var_5 = var_3(var_18 + 0x68bc);
    *(char **)puVar13 = var_5;
    if ((var_5 == (char *)0x0) || (*var_5 == '\0')) {
      var_5 = var_3(var_18 + 0x68c4);
      *(char **)puVar13 = var_5;
      if ((var_5 == (char *)0x0) || (*var_5 == '\0')) {
        *(type_2 **)puVar13 = var_18 + 0x68cc;
      }
    }
    var_5 = var_3(var_18 + 0x68dc);
    puVar13 = PTR_editproto_0004ec84;
    *(char **)PTR_editproto_0004ec84 = var_5;
    if ((var_5 == (char *)0x0) || (*var_5 == '\0')) {
      *(type_2 **)puVar13 = var_18 + 0x68e8;
    }
    prev = (void *)0x0;
    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;
    pvVar14 = (void *)0x0;
    while( true ) {
      var_14 = var_22 + -1;
      if (var_22 < 1) {
        var_14 = *(int *)var_4;
      }
      else {
        do {
          prev = pvVar14;
          var_5 = var_26(*var_24);
          if (var_5 == (char *)0x0) {
            var_5 = *var_24;
          }
          var_14 = var_14 + -1;
          var_27(var_5,prev);
          var_24 = var_24 + 1;
          pvVar14 = var_28((void *)0x0);
          (*(type_5 *)PTR_free_0004f37c)(var_5);
        } while (var_14 != -1);
        var_14 = *(int *)var_4;
      }
      if (var_14 != 0) break;
      var_14 = var_29();
      if (var_14 == 0) {
        var_14 = var_30();
        if (var_14 == 0) {
          var_31();
        }
      }
      else {
        var_14 = var_32();
        while (var_14 == 0) {
          var_31();
          var_14 = var_33(1);
        }
      }
      var_25(0);
LAB_00015654:
      pvVar14 = var_27(var_18 + 0x68f8,prev);
    }
    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {
      var_34(var_18 + 0x6910,(type_7 *)0x0);
    }
    puVar13 = PTR_tagoption_0004eca4;
    var_35();
    var_36();
    var_37(1);
    var_38(1);
    if (*(int *)puVar13 == 0) {
      var_43 = *(type_4 **)PTR_tags_0004ecb4;
      var_14 = (*(type_5 *)PTR_strcmp_0004f39c)(var_43,var_18 + 0x693c);
      if (var_14 == 0) goto LAB_000154f0;
      var_14 = var_29();
      if (var_14 == 0) {
        var_14 = var_30();
      }
      else {
        var_14 = var_32();
      }
      if (var_14 != 0) goto LAB_0001559c;
      goto LAB_000155f8;
    }
LAB_000154f0:
    var_14 = var_29();
    if (var_14 < 1) {
      do {
        var_39(*(char **)puVar13);
        var_14 = var_40();
        if (var_14 == 0) {
          var_42 = var_41();
          var_43 = (type_4 *)PTR_initial_scrpos_0004ecc8;
          *(type_6 *)PTR_initial_scrpos_0004ecc8 = var_42;
          if (var_42 != -1) goto LAB_000155f0;
        }
LAB_0001559c:
        var_25(1);
      } while( true );
    }
    var_34(var_18 + 0x6940,(type_7 *)0x0);
    var_25(1);
LAB_00015528:
    var_5 = var_3(var_18 + 0x68a8);
    piVar10 = (int *)PTR_less_is_more_0004ec68;
    if (var_5 == (char *)0x0) {
      *(type_3 *)PTR_less_is_more_0004ec68 = 1;
    }
  } while( true );
LAB_000155f0:
  *(type_3 *)(var_43 + 8) = *(type_3 *)PTR_jump_sline_0004eccc;
LAB_000155f8:
  var_44(var_43);
  pcVar15 = (type_5 *)PTR_commands_0004ecd4;
  goto LAB_00015330;
}


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

void MASKED(int param_1,undefined4 *param_2)

{
  char cVar1;
  uint uVar2;
  undefined *puVar3;
  undefined *puVar4;
  char *pcVar5;
  undefined4 uVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  undefined *puVar10;
  EVP_PKEY_CTX *ctx;
  uint uVar11;
  int *piVar12;
  int *piVar13;
  code *pcVar14;
  longlong lVar15;
  
  puVar4 = PTR_secure_0004ec48;
  puVar10 = PTR_progname_0004ec44;
  puVar3 = PTR_LAB_0004ec08;
  param_1 = param_1 + -1;
  piVar13 = param_2 + 1;
  *(undefined4 *)PTR_progname_0004ec44 = *param_2;
  *(undefined4 *)puVar4 = 0;
  pcVar5 = (char *)lgetenv(puVar3 + 0x6894);
  if ((pcVar5 != (char *)0x0) && (*pcVar5 != '\0')) {
    *(undefined4 *)puVar4 = 1;
  }
  puVar3 = PTR_is_tty_0004ec20;
  uVar6 = (*(code *)PTR_isatty_0004f294)(1);
  *(undefined4 *)puVar3 = uVar6;
  get_term();
  init_cmds();
  init_charset();
  init_line();
  init_cmdhist();
  init_option();
  init_search();
  uVar11 = *(uint *)puVar10;
  iVar7 = (*(code *)PTR_strlen_0004f30c)(uVar11);
  uVar9 = uVar11 + iVar7;
  if (uVar11 < uVar9) {
    cVar1 = *(char *)(uVar9 - 1);
    uVar2 = uVar9;
    while ((uVar9 = uVar2, cVar1 != '/' && (uVar9 = uVar2 - 1, uVar11 != uVar9))) {
      cVar1 = *(char *)(uVar2 - 2);
      uVar2 = uVar9;
    }
  }
  iVar7 = (*(code *)PTR_strcmp_0004f39c)(uVar9,PTR_LAB_0004ec08 + 0x68a0);
  piVar12 = (int *)PTR_less_is_more_0004ec68;
  if (iVar7 == 0) goto LAB_00015528;
  do {
    init_prompt();
    if (*piVar12 == 0) {
      puVar10 = PTR_LAB_0004ec08 + 0x688c;
    }
    else {
      puVar10 = PTR_LAB_0004ec08 + 0x68b0;
    }
    iVar7 = lgetenv(puVar10);
    if (iVar7 != 0) {
      uVar6 = save(iVar7);
      scan_option(uVar6);
    }
    if (0 < param_1) {
      puVar10 = PTR_LAB_0004ec08 + 0x68b8;
      do {
        pcVar5 = (char *)*piVar13;
        if (((*pcVar5 != '-') && (*pcVar5 != '+')) || (pcVar5[1] == '\0')) {
          iVar7 = isoptpending();
          if (iVar7 == 0) break;
          pcVar5 = (char *)*piVar13;
        }
        piVar13 = piVar13 + 1;
        iVar7 = (*(code *)PTR_strcmp_0004f39c)(pcVar5,puVar10);
        param_1 = param_1 + -1;
        if ((iVar7 == 0) || (scan_option(pcVar5), param_1 == 0)) break;
      } while( true );
    }
    iVar7 = isoptpending();
    pcVar14 = (code *)PTR_nopendopt_0004ec7c;
    if (iVar7 == 0) goto LAB_00015348;
LAB_00015330:
    (*pcVar14)();
    quit(0);
LAB_00015348:
    puVar10 = PTR_editor_0004ec80;
    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68bc);
    *(char **)puVar10 = pcVar5;
    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {
      pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68c4);
      *(char **)puVar10 = pcVar5;
      if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {
        *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68cc;
      }
    }
    pcVar5 = (char *)lgetenv(PTR_LAB_0004ec08 + 0x68dc);
    puVar10 = PTR_editproto_0004ec84;
    *(char **)PTR_editproto_0004ec84 = pcVar5;
    if ((pcVar5 == (char *)0x0) || (*pcVar5 == '\0')) {
      *(undefined **)puVar10 = PTR_LAB_0004ec08 + 0x68e8;
    }
    if (*(int *)PTR_dohelp_0004ec88 != 0) goto LAB_00015654;
    uVar6 = 0;
    while( true ) {
      iVar7 = param_1 + -1;
      if (param_1 < 1) {
        iVar7 = *(int *)puVar3;
      }
      else {
        do {
          iVar8 = shell_quote(*piVar13);
          if (iVar8 == 0) {
            iVar8 = *piVar13;
          }
          iVar7 = iVar7 + -1;
          get_ifile(iVar8,uVar6);
          piVar13 = piVar13 + 1;
          uVar6 = prev_ifile(0);
          (*(code *)PTR_free_0004f37c)(iVar8);
        } while (iVar7 != -1);
        iVar7 = *(int *)puVar3;
      }
      if (iVar7 != 0) break;
      iVar7 = nifile();
      if (iVar7 == 0) {
        iVar7 = edit_stdin();
        if (iVar7 == 0) {
          cat_file();
        }
      }
      else {
        iVar7 = edit_first();
        while (iVar7 == 0) {
          cat_file();
          iVar7 = edit_next(1);
        }
      }
      quit(0);
LAB_00015654:
      uVar6 = get_ifile(PTR_LAB_0004ec08 + 0x68f8);
    }
    if ((*(int *)PTR_missing_cap_0004ec98 != 0) && (*(int *)PTR_know_dumb_0004eca0 == 0)) {
      error(PTR_LAB_0004ec08 + 0x6910,0);
    }
    puVar10 = PTR_tagoption_0004eca4;
    init_mark();
    open_getchr();
    raw_mode(1);
    init_signals(1);
    if (*(int *)puVar10 == 0) {
      ctx = *(EVP_PKEY_CTX **)PTR_tags_0004ecb4;
      iVar7 = (*(code *)PTR_strcmp_0004f39c)(ctx,PTR_LAB_0004ec08 + 0x693c);
      if (iVar7 == 0) goto LAB_000154f0;
      iVar7 = nifile();
      if (iVar7 == 0) {
        iVar7 = edit_stdin();
      }
      else {
        iVar7 = edit_first();
      }
      if (iVar7 != 0) goto LAB_0001559c;
      goto LAB_000155f8;
    }
LAB_000154f0:
    iVar7 = nifile();
    if (iVar7 < 1) {
      do {
        findtag(*(undefined4 *)puVar10);
        iVar7 = edit_tagfile();
        if (iVar7 == 0) {
          lVar15 = tagsearch();
          ctx = (EVP_PKEY_CTX *)PTR_initial_scrpos_0004ecc8;
          *(longlong *)PTR_initial_scrpos_0004ecc8 = lVar15;
          if (lVar15 != -1) goto LAB_000155f0;
        }
LAB_0001559c:
        quit(1);
      } while( true );
    }
    error(PTR_LAB_0004ec08 + 0x6940,0);
    quit(1);
LAB_00015528:
    iVar7 = lgetenv(PTR_LAB_0004ec08 + 0x68a8);
    piVar12 = (int *)PTR_less_is_more_0004ec68;
    if (iVar7 == 0) {
      *(undefined4 *)PTR_less_is_more_0004ec68 = 1;
    }
  } while( true );
LAB_000155f0:
  *(undefined4 *)(ctx + 8) = *(undefined4 *)PTR_jump_sline_0004eccc;
LAB_000155f8:
  init(ctx);
  pcVar14 = (code *)PTR_commands_0004ecd4;
  goto LAB_00015330;
}

