
void jump_loc(POSITION pos,int sline)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  uint in_a1;
  uint uVar4;
  uint force;
  int in_a2;
  int iVar5;
  int iVar6;
  POSITION PVar7;
  POSITION PVar8;
  POSITION PVar9;
  POSITION PVar10;
  undefined4 in_stack_ffffffc0;
  undefined4 in_stack_ffffffc4;
  
  PVar10 = CONCAT44(sline,in_a1);
  PVar7 = CONCAT44(sline,in_a1);
  iVar2 = adjsline(in_a2);
  uVar4 = in_a1;
  iVar3 = onscreen(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));
  if (iVar3 < 0) {
    uVar4 = in_a1;
    iVar3 = ch_seek(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));
    if (iVar3 != 0) {
                    /* WARNING: Subroutine does not return */
      error(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0);
    }
    PVar8 = position(0);
    iVar3 = (int)((ulonglong)PVar8 >> 0x20);
    PVar9 = position(-2);
    puVar1 = PTR_sc_height_0004fcf0;
    iVar6 = (int)((ulonglong)PVar9 >> 0x20);
    if ((PVar8 == -1) || ((iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1)))))) {
      iVar3 = 0;
      force = uVar4;
      if (0 < iVar2) {
        do {
          iVar5 = (int)((ulonglong)PVar10 >> 0x20);
          uVar4 = (uint)PVar10;
          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&
             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {
            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,
                 (uint)PVar9);
            if (*(int *)PTR_show_attn_0004ff78 == 0) {
              return;
            }
            repaint_hilite(1);
            return;
          }
          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));
        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));
      }
      lastmark();
      *(undefined4 *)PTR_squished_00050090 = 0;
      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;
      forw(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),
           (int)PVar10);
    }
    else {
      if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {
        do {
          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));
          iVar6 = (int)PVar7;
          if (PVar7 == -1) {
            PVar7 = -1;
            break;
          }
          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));
          iVar5 = (int)((ulonglong)PVar7 >> 0x20);
          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {
            back(iVar2 + 1,0x100000000,iVar6,iVar3);
            if (*(int *)PTR_show_attn_0004ff78 == 0) {
              return;
            }
            repaint_hilite(1);
            return;
          }
          iVar2 = iVar2 + 1;
        } while (iVar2 < *(int *)puVar1 + -1);
      }
      lastmark();
      if (*(int *)PTR_top_scroll_0004fd58 == 0) {
        clear();
      }
      else {
        home();
      }
      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;
      iVar2 = (int)PVar7;
      add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));
      back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20));
    }
  }
  else {
    if (iVar3 - iVar2 < 1) {
      PVar7 = position(0);
      back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20));
    }
    else {
      PVar7 = position(-2);
      forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);
    }
    if (*(int *)PTR_show_attn_0004ff78 != 0) {
      repaint_hilite(1);
    }
  }
  return;
}



void jump_loc(int param_1,uint param_2,undefined4 param_3)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  longlong lVar6;
  longlong lVar7;
  longlong lVar8;
  
  lVar8 = CONCAT44(param_1,param_2);
  iVar2 = adjsline(param_3);
  iVar3 = onscreen(param_1,param_2);
  if (iVar3 < 0) {
    iVar3 = ch_seek(param_1,param_2);
    if (iVar3 == 0) {
      lVar6 = position(0);
      iVar3 = (int)((ulonglong)lVar6 >> 0x20);
      lVar7 = position(0xfffffffe);
      puVar1 = PTR_sc_height_0004fcf0;
      iVar4 = (int)((ulonglong)lVar7 >> 0x20);
      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))
      {
        iVar3 = 0;
        if (0 < iVar2) {
          do {
            iVar5 = (int)((ulonglong)lVar8 >> 0x20);
            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&
               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {
              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);
              if (*(int *)PTR_show_attn_0004ff78 == 0) {
                return;
              }
              repaint_hilite(1);
              return;
            }
            lVar8 = back_line(iVar5,(uint)lVar8);
          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));
        }
        lastmark();
        *(undefined4 *)PTR_squished_00050090 = 0;
        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;
        forw(*(int *)PTR_sc_height_0004fcf0 + -1);
      }
      else {
        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {
          do {
            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);
            if (lVar8 == -1) {
              lVar8 = -1;
              break;
            }
            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);
            iVar4 = (int)((ulonglong)lVar8 >> 0x20);
            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {
              back(iVar2 + 1);
              if (*(int *)PTR_show_attn_0004ff78 == 0) {
                return;
              }
              repaint_hilite(1);
              return;
            }
            iVar2 = iVar2 + 1;
          } while (iVar2 < *(int *)puVar1 + -1);
        }
        lastmark();
        if (*(int *)PTR_top_scroll_0004fd58 == 0) {
          clear();
        }
        else {
          home();
        }
        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;
        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);
        back(*(int *)PTR_sc_height_0004fcf0 + -1);
      }
    }
    else {
      error(PTR_DAT_0004fcec + -0x4160,0);
    }
  }
  else {
    if (iVar3 - iVar2 < 1) {
      position(0);
      back(iVar2 - iVar3);
    }
    else {
      position(0xfffffffe);
      forw(iVar3 - iVar2);
    }
    if (*(int *)PTR_show_attn_0004ff78 != 0) {
      repaint_hilite(1);
    }
  }
  return;
}


lui gp,0x3
addiu gp,gp,0x670
addu gp,gp,t9
addiu sp,sp,-0x50
sw ra,0x4c(sp)
sw s7,0x48(sp)
sw s6,0x44(sp)
sw s5,0x40(sp)
sw s4,0x3c(sp)
sw s3,0x38(sp)
sw s2,0x34(sp)
sw s1,0x30(sp)
sw s0,0x2c(sp)
sw gp,0x20(sp)
or s0,a0,zero
or s1,a1,zero
or a0,a2,zero
lw t9,-0x7aa4(gp)
bal 0x00030e30
_nop
lw gp,0x20(sp)
or s2,v0,zero
or a0,s0,zero
or a1,s1,zero
lw t9,-0x7aa0(gp)
bal 0x00030a54
_nop
lw gp,0x20(sp)
bltz v0,0x000276bc
_or a0,s0,zero
subu s0,v0,s2
blez s0,0x0002765c
_li a0,-0x2
lw t9,-0x7e50(gp)
bal 0x000308a0
_nop
lw gp,0x20(sp)
sw zero,0x18(sp)
sw zero,0x14(sp)
li a0,0x1
sw a0,0x10(sp)
or a3,v1,zero
or a2,v0,zero
or a0,s0,zero
lw t9,-0x7ae4(gp)
bal 0x000257d0
_nop
lw gp,0x20(sp)
lw v0,-0x7c58(gp)
lw v0,0x0(v0)
bne v0,zero,0x000276a4
_li a0,0x1
lw ra,0x4c(sp)
lw s7,0x48(sp)
lw s6,0x44(sp)
lw s5,0x40(sp)
lw s4,0x3c(sp)
lw s3,0x38(sp)
lw s2,0x34(sp)
lw s1,0x30(sp)
lw s0,0x2c(sp)
jr ra
_addiu sp,sp,0x50
subu s2,s2,v0
or a0,zero,zero
lw t9,-0x7e50(gp)
bal 0x000308a0
_nop
lw gp,0x20(sp)
sw zero,0x14(sp)
li a0,0x1
sw a0,0x10(sp)
or a3,v1,zero
or a2,v0,zero
or a0,s2,zero
lw t9,-0x7ae8(gp)
bal 0x00025d40
_nop
lw gp,0x20(sp)
b 0x00027624
_lw v0,-0x7c58(gp)
lw t9,-0x7a9c(gp)
bal 0x00032d64
_nop
lw gp,0x20(sp)
b 0x00027634
_lw ra,0x4c(sp)
or a1,s1,zero
lw t9,-0x7e4c(gp)
bal 0x00018b34
_nop
lw gp,0x20(sp)
bne v0,zero,0x00027838
_or s3,v0,zero
or a0,zero,zero
lw t9,-0x7e50(gp)
bal 0x000308a0
_nop
lw gp,0x20(sp)
or s4,v0,zero
or s5,v1,zero
li a0,-0x2
lw t9,-0x7e50(gp)
bal 0x000308a0
_nop
lw gp,0x20(sp)
or s6,v0,zero
li v0,-0x1
beq s4,v0,0x0002785c
_or s7,v1,zero
slt v0,s0,s4
bne v0,zero,0x00027734
_lw v0,-0x7ee0(gp)
bne s4,s0,0x00027864
_sltu v0,s1,s5
beq v0,zero,0x00027864
_lw v0,-0x7ee0(gp)
lw v0,0x0(v0)
addiu v0,v0,-0x1
slt v0,s2,v0
beq v0,zero,0x000277b0
_li s3,-0x1
lw s6,-0x7ee0(gp)
or a0,s0,zero
or a1,s1,zero
lw t9,-0x7b18(gp)
bal 0x000266f0
_nop
lw gp,0x20(sp)
or s0,v0,zero
beq s0,s3,0x00027998
_or s1,v1,zero
or a0,s0,zero
or a1,s1,zero
lw t9,-0x7b2c(gp)
bal 0x00033bc0
_nop
lw gp,0x20(sp)
or s0,v0,zero
slt v0,s0,s4
beq v0,zero,0x000279a8
_or s1,v1,zero
addiu s2,s2,0x1
lw v0,0x0(s6)
addiu v0,v0,-0x1
slt v0,s2,v0
bne v0,zero,0x00027750
_or a0,s0,zero
lw t9,-0x7bb8(gp)
bal 0x0002c6fc
_nop
lw gp,0x20(sp)
lw v0,-0x7e78(gp)
lw v0,0x0(v0)
bne v0,zero,0x00027a0c
_lw t9,-0x7b1c(gp)
lw t9,-0x7b20(gp)
bal 0x000177d8
_nop
lw gp,0x20(sp)
lw v0,-0x7df8(gp)
sw zero,0x0(v0)
or a0,s0,zero
or a1,s1,zero
lw t9,-0x7af8(gp)
bal 0x000309a0
_nop
lw gp,0x20(sp)
lw v0,-0x7ee0(gp)
lw a0,0x0(v0)
sw zero,0x14(sp)
li v0,0x1
sw v0,0x10(sp)
or a2,s0,zero
or a3,s1,zero
addiu a0,a0,-0x1
lw t9,-0x7ae8(gp)
bal 0x00025d40
_nop
lw gp,0x20(sp)
b 0x00027634
_lw ra,0x4c(sp)
or a1,zero,zero
lw a0,-0x7ee4(gp)
addiu a0,a0,-0x4160
lw t9,-0x7f9c(gp)
bal 0x0002ffc4
_nop
lw gp,0x20(sp)
b 0x00027634
_lw ra,0x4c(sp)
bne s5,v0,0x0002771c
_slt v0,s0,s4
bgtz s2,0x00027900
_li s4,-0x1
lw t9,-0x7bb8(gp)
bal 0x0002c6fc
_nop
lw gp,0x20(sp)
lw v0,-0x7b40(gp)
sw zero,0x0(v0)
lw v0,-0x7df8(gp)
sw zero,0x0(v0)
lw v0,-0x7ee0(gp)
lw a0,0x0(v0)
subu s2,s2,s3
sw s2,0x18(sp)
sw zero,0x14(sp)
li v0,0x1
sw v0,0x10(sp)
or a2,s0,zero
or a3,s1,zero
addiu a0,a0,-0x1
lw t9,-0x7ae4(gp)
bal 0x000257d0
_nop
lw gp,0x20(sp)
b 0x00027634
_lw ra,0x4c(sp)
bne s7,s4,0x00027908
_or a0,s0,zero
or a1,s1,zero
lw t9,-0x7af0(gp)
bal 0x00026e08
_nop
lw gp,0x20(sp)
or s0,v0,zero
beq s0,s4,0x00027984
_or s1,v1,zero
addiu s3,s3,0x1
beq s2,s3,0x00027870
_lw t9,-0x7bb8(gp)
beq s6,s4,0x000278cc
_slt v0,s6,s0
bne v0,zero,0x000278d4
_or a0,s0,zero
bne s0,s6,0x00027920
_sltu v0,s7,s1
bne v0,zero,0x000278d8
_or a1,s1,zero
lw v0,-0x7ee0(gp)
lw a0,0x0(v0)
subu a0,a0,s2
addu a0,a0,s3
sw zero,0x18(sp)
sw zero,0x14(sp)
li v0,0x1
sw v0,0x10(sp)
or a2,s6,zero
or a3,s7,zero
addiu a0,a0,-0x1
lw t9,-0x7ae4(gp)
bal 0x000257d0
_nop
lw gp,0x20(sp)
lw v0,-0x7c58(gp)
lw v0,0x0(v0)
beq v0,zero,0x00027630
_li a0,0x1
lw t9,-0x7a9c(gp)
bal 0x00032d64
_nop
lw gp,0x20(sp)
b 0x00027634
_lw ra,0x4c(sp)
bne v1,s4,0x000278f8
_addiu s3,s3,0x1
addiu s3,s3,-0x1
b 0x00027870
_lw t9,-0x7bb8(gp)
bne v1,s3,0x00027774
_or a0,s0,zero
b 0x000277b4
_lw t9,-0x7bb8(gp)
bne s4,s0,0x000279bc
_sltu v0,v1,s5
bne v0,zero,0x0002779c
_addiu s2,s2,0x1
addiu s2,s2,-0x1
sw zero,0x14(sp)
li v0,0x1
sw v0,0x10(sp)
or a2,s4,zero
or a3,s5,zero
addiu a0,s2,0x1
lw t9,-0x7ae8(gp)
bal 0x00025d40
_nop
lw gp,0x20(sp)
lw v0,-0x7c58(gp)
lw v0,0x0(v0)
beq v0,zero,0x00027630
_li a0,0x1
lw t9,-0x7a9c(gp)
bal 0x00032d64
_nop
lw gp,0x20(sp)
b 0x00027634
_lw ra,0x4c(sp)
bal 0x00017490
_nop
lw gp,0x20(sp)
b 0x000277e4
_lw v0,-0x7df8(gp)
(translation_unit "void jump_loc(int param_1,uint param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  \n  lVar8 = CONCAT44(param_1,param_2);\n  iVar2 = adjsline(param_3);\n  iVar3 = onscreen(param_1,param_2);\n  if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}\n\n" (function_definition "void jump_loc(int param_1,uint param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  \n  lVar8 = CONCAT44(param_1,param_2);\n  iVar2 = adjsline(param_3);\n  iVar3 = onscreen(param_1,param_2);\n  if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "jump_loc(int param_1,uint param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,uint param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  \n  lVar8 = CONCAT44(param_1,param_2);\n  iVar2 = adjsline(param_3);\n  iVar3 = onscreen(param_1,param_2);\n  if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "longlong lVar6;" type_identifier identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (expression_statement "lVar8 = CONCAT44(param_1,param_2);" (assignment_expression "lVar8 = CONCAT44(param_1,param_2)" identifier = (call_expression "CONCAT44(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = adjsline(param_3);" (assignment_expression "iVar2 = adjsline(param_3)" identifier = (call_expression "adjsline(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "iVar3 = onscreen(param_1,param_2);" (assignment_expression "iVar3 = onscreen(param_1,param_2)" identifier = (call_expression "onscreen(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }" { (expression_statement "iVar3 = ch_seek(param_1,param_2);" (assignment_expression "iVar3 = ch_seek(param_1,param_2)" identifier = (call_expression "ch_seek(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }" { (expression_statement "lVar6 = position(0);" (assignment_expression "lVar6 = position(0)" identifier = (call_expression "position(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar3 = (int)((ulonglong)lVar6 >> 0x20);" (assignment_expression "iVar3 = (int)((ulonglong)lVar6 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "lVar7 = position(0xfffffffe);" (assignment_expression "lVar7 = position(0xfffffffe)" identifier = (call_expression "position(0xfffffffe)" identifier (argument_list "(0xfffffffe)" ( number_literal )))) ;) (expression_statement "puVar1 = PTR_sc_height_0004fcf0;" (assignment_expression "puVar1 = PTR_sc_height_0004fcf0" identifier = identifier) ;) (expression_statement "iVar4 = (int)((ulonglong)lVar7 >> 0x20);" (assignment_expression "iVar4 = (int)((ulonglong)lVar7 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar7 >> 0x20)" ( (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" if (parenthesized_expression "((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))" ( (binary_expression "(lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2)))))" (parenthesized_expression "(lVar6 == -1)" ( (binary_expression "lVar6 == -1" identifier == number_literal) )) || (parenthesized_expression "((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2)))))" ( (parenthesized_expression "(iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))" ( (binary_expression "iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2)))" (binary_expression "iVar3 <= param_1" identifier <= identifier) && (parenthesized_expression "((iVar3 != param_1 || ((uint)lVar6 <= param_2)))" ( (parenthesized_expression "(iVar3 != param_1 || ((uint)lVar6 <= param_2))" ( (binary_expression "iVar3 != param_1 || ((uint)lVar6 <= param_2)" (binary_expression "iVar3 != param_1" identifier != identifier) || (parenthesized_expression "((uint)lVar6 <= param_2)" ( (binary_expression "(uint)lVar6 <= param_2" (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) ))) )) ))) )) ))) )) (compound_statement "{\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }" { (do_statement "do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));" do (compound_statement "{\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          }" { (expression_statement "iVar5 = (int)((ulonglong)lVar8 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar8 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" if (parenthesized_expression "(((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7))))" ( (binary_expression "((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))" (parenthesized_expression "((lVar7 != -1) && (iVar5 <= iVar4))" ( (binary_expression "(lVar7 != -1) && (iVar5 <= iVar4)" (parenthesized_expression "(lVar7 != -1)" ( (binary_expression "lVar7 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar5 <= iVar4)" ( (binary_expression "iVar5 <= iVar4" identifier <= identifier) ))) )) && (parenthesized_expression "((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))" ( (parenthesized_expression "(iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7))" ( (binary_expression "iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)" (binary_expression "iVar5 != iVar4" identifier != identifier) || (parenthesized_expression "((uint)lVar8 <= (uint)lVar7)" ( (binary_expression "(uint)lVar8 <= (uint)lVar7" (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier) <= (cast_expression "(uint)lVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) ))) )) (compound_statement "{\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" { (expression_statement "forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);" (call_expression "forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1)" identifier (argument_list "((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1)" ( (binary_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1" (binary_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3" (parenthesized_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2)" ( (binary_expression "*(int *)PTR_sc_height_0004fcf0 - iVar2" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) - identifier) )) + identifier) + number_literal) ))) ;) (if_statement "if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }" if (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 == 0)" ( (binary_expression "*(int *)PTR_show_attn_0004ff78 == 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" * (cast_expression "(int *)PTR_show_attn_0004ff78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                return;\n              }" { (return_statement "return;" return ;) })) (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "lVar8 = back_line(iVar5,(uint)lVar8);" (assignment_expression "lVar8 = back_line(iVar5,(uint)lVar8)" identifier = (call_expression "back_line(iVar5,(uint)lVar8)" identifier (argument_list "(iVar5,(uint)lVar8)" ( identifier , (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) }) while (parenthesized_expression "((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3))" ( (binary_expression "(lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3)" (parenthesized_expression "(lVar8 != -1)" ( (binary_expression "lVar8 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = iVar3 + 1, iVar2 != iVar3)" ( (comma_expression "iVar3 = iVar3 + 1, iVar2 != iVar3" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) , (binary_expression "iVar2 != iVar3" identifier != identifier)) ))) )) ;) })) (expression_statement "lastmark();" (call_expression "lastmark()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)PTR_squished_00050090 = 0;" (assignment_expression "*(undefined4 *)PTR_squished_00050090 = 0" (pointer_expression "*(undefined4 *)PTR_squished_00050090" * (cast_expression "(undefined4 *)PTR_squished_00050090" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;" (assignment_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0" (pointer_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8" * (cast_expression "(undefined4 *)PTR_screen_trashed_0004fdd8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "forw(*(int *)PTR_sc_height_0004fcf0 + -1);" (call_expression "forw(*(int *)PTR_sc_height_0004fcf0 + -1)" identifier (argument_list "(*(int *)PTR_sc_height_0004fcf0 + -1)" ( (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))) ;) }) (else_clause "else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" else (compound_statement "{\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" { (if_statement "if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }" if (parenthesized_expression "(iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1)" ( (binary_expression "iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1" identifier < (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) )) (compound_statement "{\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }" { (do_statement "do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);" do (compound_statement "{\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          }" { (expression_statement "lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);" (assignment_expression "lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" identifier = (call_expression "forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" identifier (argument_list "((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" ( (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }" if (parenthesized_expression "(lVar8 == -1)" ( (binary_expression "lVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              lVar8 = -1;\n              break;\n            }" { (expression_statement "lVar8 = -1;" (assignment_expression "lVar8 = -1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);" (assignment_expression "lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" identifier = (call_expression "next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" identifier (argument_list "((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" ( (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "iVar4 = (int)((ulonglong)lVar8 >> 0x20);" (assignment_expression "iVar4 = (int)((ulonglong)lVar8 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" if (parenthesized_expression "((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8))))" ( (binary_expression "(iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))" (parenthesized_expression "(iVar3 <= iVar4)" ( (binary_expression "iVar3 <= iVar4" identifier <= identifier) )) && (parenthesized_expression "((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))" ( (parenthesized_expression "(iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8))" ( (binary_expression "iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)" (binary_expression "iVar3 != iVar4" identifier != identifier) || (parenthesized_expression "((uint)lVar6 <= (uint)lVar8)" ( (binary_expression "(uint)lVar6 <= (uint)lVar8" (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier) <= (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) ))) )) (compound_statement "{\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" { (expression_statement "back(iVar2 + 1);" (call_expression "back(iVar2 + 1)" identifier (argument_list "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) ))) ;) (if_statement "if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }" if (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 == 0)" ( (binary_expression "*(int *)PTR_show_attn_0004ff78 == 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" * (cast_expression "(int *)PTR_show_attn_0004ff78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                return;\n              }" { (return_statement "return;" return ;) })) (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 < *(int *)puVar1 + -1)" ( (binary_expression "iVar2 < *(int *)puVar1 + -1" identifier < (binary_expression "*(int *)puVar1 + -1" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) )) ;) })) (expression_statement "lastmark();" (call_expression "lastmark()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }" if (parenthesized_expression "(*(int *)PTR_top_scroll_0004fd58 == 0)" ( (binary_expression "*(int *)PTR_top_scroll_0004fd58 == 0" (pointer_expression "*(int *)PTR_top_scroll_0004fd58" * (cast_expression "(int *)PTR_top_scroll_0004fd58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n          clear();\n        }" { (expression_statement "clear();" (call_expression "clear()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          home();\n        }" else (compound_statement "{\n          home();\n        }" { (expression_statement "home();" (call_expression "home()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;" (assignment_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0" (pointer_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8" * (cast_expression "(undefined4 *)PTR_screen_trashed_0004fdd8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);" (call_expression "add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" identifier (argument_list "((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" ( (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "back(*(int *)PTR_sc_height_0004fcf0 + -1);" (call_expression "back(*(int *)PTR_sc_height_0004fcf0 + -1)" identifier (argument_list "(*(int *)PTR_sc_height_0004fcf0 + -1)" ( (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))) ;) }))) }) (else_clause "else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }" else (compound_statement "{\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }" { (expression_statement "error(PTR_DAT_0004fcec + -0x4160,0);" (call_expression "error(PTR_DAT_0004fcec + -0x4160,0)" identifier (argument_list "(PTR_DAT_0004fcec + -0x4160,0)" ( (binary_expression "PTR_DAT_0004fcec + -0x4160" identifier + number_literal) , number_literal ))) ;) }))) }) (else_clause "else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" else (compound_statement "{\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" { (if_statement "if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }" if (parenthesized_expression "(iVar3 - iVar2 < 1)" ( (binary_expression "iVar3 - iVar2 < 1" (binary_expression "iVar3 - iVar2" identifier - identifier) < number_literal) )) (compound_statement "{\n      position(0);\n      back(iVar2 - iVar3);\n    }" { (expression_statement "position(0);" (call_expression "position(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "back(iVar2 - iVar3);" (call_expression "back(iVar2 - iVar3)" identifier (argument_list "(iVar2 - iVar3)" ( (binary_expression "iVar2 - iVar3" identifier - identifier) ))) ;) }) (else_clause "else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }" else (compound_statement "{\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }" { (expression_statement "position(0xfffffffe);" (call_expression "position(0xfffffffe)" identifier (argument_list "(0xfffffffe)" ( number_literal ))) ;) (expression_statement "forw(iVar3 - iVar2);" (call_expression "forw(iVar3 - iVar2)" identifier (argument_list "(iVar3 - iVar2)" ( (binary_expression "iVar3 - iVar2" identifier - identifier) ))) ;) }))) (if_statement "if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }" if (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 != 0)" ( (binary_expression "*(int *)PTR_show_attn_0004ff78 != 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" * (cast_expression "(int *)PTR_show_attn_0004ff78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      repaint_hilite(1);\n    }" { (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void jump_loc(POSITION pos,int sline)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  uint in_a1;\n  uint uVar4;\n  uint force;\n  int in_a2;\n  int iVar5;\n  int iVar6;\n  POSITION PVar7;\n  POSITION PVar8;\n  POSITION PVar9;\n  POSITION PVar10;\n  undefined4 in_stack_ffffffc0;\n  undefined4 in_stack_ffffffc4;\n  \n  PVar10 = CONCAT44(sline,in_a1);\n  PVar7 = CONCAT44(sline,in_a1);\n  iVar2 = adjsline(in_a2);\n  uVar4 = in_a1;\n  iVar3 = onscreen(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n  if (iVar3 < 0) {\n    uVar4 = in_a1;\n    iVar3 = ch_seek(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n    if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n      error(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0);\n    }\n    PVar8 = position(0);\n    iVar3 = (int)((ulonglong)PVar8 >> 0x20);\n    PVar9 = position(-2);\n    puVar1 = PTR_sc_height_0004fcf0;\n    iVar6 = (int)((ulonglong)PVar9 >> 0x20);\n    if ((PVar8 == -1) || ((iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1)))))) {\n      iVar3 = 0;\n      force = uVar4;\n      if (0 < iVar2) {\n        do {\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));\n      }\n      lastmark();\n      *(undefined4 *)PTR_squished_00050090 = 0;\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      forw(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),\n           (int)PVar10);\n    }\n    else {\n      if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n        do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);\n      }\n      lastmark();\n      if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n        clear();\n      }\n      else {\n        home();\n      }\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      iVar2 = (int)PVar7;\n      add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n      back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20));\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      PVar7 = position(0);\n      back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20));\n    }\n    else {\n      PVar7 = position(-2);\n      forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}\n\n" (function_definition "void jump_loc(POSITION pos,int sline)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  uint in_a1;\n  uint uVar4;\n  uint force;\n  int in_a2;\n  int iVar5;\n  int iVar6;\n  POSITION PVar7;\n  POSITION PVar8;\n  POSITION PVar9;\n  POSITION PVar10;\n  undefined4 in_stack_ffffffc0;\n  undefined4 in_stack_ffffffc4;\n  \n  PVar10 = CONCAT44(sline,in_a1);\n  PVar7 = CONCAT44(sline,in_a1);\n  iVar2 = adjsline(in_a2);\n  uVar4 = in_a1;\n  iVar3 = onscreen(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n  if (iVar3 < 0) {\n    uVar4 = in_a1;\n    iVar3 = ch_seek(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n    if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n      error(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0);\n    }\n    PVar8 = position(0);\n    iVar3 = (int)((ulonglong)PVar8 >> 0x20);\n    PVar9 = position(-2);\n    puVar1 = PTR_sc_height_0004fcf0;\n    iVar6 = (int)((ulonglong)PVar9 >> 0x20);\n    if ((PVar8 == -1) || ((iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1)))))) {\n      iVar3 = 0;\n      force = uVar4;\n      if (0 < iVar2) {\n        do {\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));\n      }\n      lastmark();\n      *(undefined4 *)PTR_squished_00050090 = 0;\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      forw(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),\n           (int)PVar10);\n    }\n    else {\n      if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n        do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);\n      }\n      lastmark();\n      if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n        clear();\n      }\n      else {\n        home();\n      }\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      iVar2 = (int)PVar7;\n      add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n      back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20));\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      PVar7 = position(0);\n      back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20));\n    }\n    else {\n      PVar7 = position(-2);\n      forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "jump_loc(POSITION pos,int sline)" identifier (parameter_list "(POSITION pos,int sline)" ( (parameter_declaration "POSITION pos" type_identifier identifier) , (parameter_declaration "int sline" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  uint in_a1;\n  uint uVar4;\n  uint force;\n  int in_a2;\n  int iVar5;\n  int iVar6;\n  POSITION PVar7;\n  POSITION PVar8;\n  POSITION PVar9;\n  POSITION PVar10;\n  undefined4 in_stack_ffffffc0;\n  undefined4 in_stack_ffffffc4;\n  \n  PVar10 = CONCAT44(sline,in_a1);\n  PVar7 = CONCAT44(sline,in_a1);\n  iVar2 = adjsline(in_a2);\n  uVar4 = in_a1;\n  iVar3 = onscreen(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n  if (iVar3 < 0) {\n    uVar4 = in_a1;\n    iVar3 = ch_seek(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n    if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n      error(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0);\n    }\n    PVar8 = position(0);\n    iVar3 = (int)((ulonglong)PVar8 >> 0x20);\n    PVar9 = position(-2);\n    puVar1 = PTR_sc_height_0004fcf0;\n    iVar6 = (int)((ulonglong)PVar9 >> 0x20);\n    if ((PVar8 == -1) || ((iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1)))))) {\n      iVar3 = 0;\n      force = uVar4;\n      if (0 < iVar2) {\n        do {\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));\n      }\n      lastmark();\n      *(undefined4 *)PTR_squished_00050090 = 0;\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      forw(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),\n           (int)PVar10);\n    }\n    else {\n      if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n        do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);\n      }\n      lastmark();\n      if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n        clear();\n      }\n      else {\n        home();\n      }\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      iVar2 = (int)PVar7;\n      add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n      back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20));\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      PVar7 = position(0);\n      back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20));\n    }\n    else {\n      PVar7 = position(-2);\n      forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint in_a1;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint force;" type_identifier identifier ;) (declaration "int in_a2;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "POSITION PVar7;" type_identifier identifier ;) (declaration "POSITION PVar8;" type_identifier identifier ;) (declaration "POSITION PVar9;" type_identifier identifier ;) (declaration "POSITION PVar10;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffffc0;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffffc4;" type_identifier identifier ;) (expression_statement "PVar10 = CONCAT44(sline,in_a1);" (assignment_expression "PVar10 = CONCAT44(sline,in_a1)" identifier = (call_expression "CONCAT44(sline,in_a1)" identifier (argument_list "(sline,in_a1)" ( identifier , identifier )))) ;) (expression_statement "PVar7 = CONCAT44(sline,in_a1);" (assignment_expression "PVar7 = CONCAT44(sline,in_a1)" identifier = (call_expression "CONCAT44(sline,in_a1)" identifier (argument_list "(sline,in_a1)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = adjsline(in_a2);" (assignment_expression "iVar2 = adjsline(in_a2)" identifier = (call_expression "adjsline(in_a2)" identifier (argument_list "(in_a2)" ( identifier )))) ;) (expression_statement "uVar4 = in_a1;" (assignment_expression "uVar4 = in_a1" identifier = identifier) ;) (expression_statement "iVar3 = onscreen(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));" (assignment_expression "iVar3 = onscreen(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier = (call_expression "onscreen(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier (argument_list "(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" ( (call_expression "CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc0,in_stack_ffffffc4)" ( identifier , identifier ))) )))) ;) (if_statement "if (iVar3 < 0) {\n    uVar4 = in_a1;\n    iVar3 = ch_seek(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n    if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n      error(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0);\n    }\n    PVar8 = position(0);\n    iVar3 = (int)((ulonglong)PVar8 >> 0x20);\n    PVar9 = position(-2);\n    puVar1 = PTR_sc_height_0004fcf0;\n    iVar6 = (int)((ulonglong)PVar9 >> 0x20);\n    if ((PVar8 == -1) || ((iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1)))))) {\n      iVar3 = 0;\n      force = uVar4;\n      if (0 < iVar2) {\n        do {\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));\n      }\n      lastmark();\n      *(undefined4 *)PTR_squished_00050090 = 0;\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      forw(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),\n           (int)PVar10);\n    }\n    else {\n      if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n        do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);\n      }\n      lastmark();\n      if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n        clear();\n      }\n      else {\n        home();\n      }\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      iVar2 = (int)PVar7;\n      add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n      back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20));\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      PVar7 = position(0);\n      back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20));\n    }\n    else {\n      PVar7 = position(-2);\n      forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    uVar4 = in_a1;\n    iVar3 = ch_seek(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n    if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n      error(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0);\n    }\n    PVar8 = position(0);\n    iVar3 = (int)((ulonglong)PVar8 >> 0x20);\n    PVar9 = position(-2);\n    puVar1 = PTR_sc_height_0004fcf0;\n    iVar6 = (int)((ulonglong)PVar9 >> 0x20);\n    if ((PVar8 == -1) || ((iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1)))))) {\n      iVar3 = 0;\n      force = uVar4;\n      if (0 < iVar2) {\n        do {\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));\n      }\n      lastmark();\n      *(undefined4 *)PTR_squished_00050090 = 0;\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      forw(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),\n           (int)PVar10);\n    }\n    else {\n      if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n        do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);\n      }\n      lastmark();\n      if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n        clear();\n      }\n      else {\n        home();\n      }\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      iVar2 = (int)PVar7;\n      add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n      back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20));\n    }\n  }" { (expression_statement "uVar4 = in_a1;" (assignment_expression "uVar4 = in_a1" identifier = identifier) ;) (expression_statement "iVar3 = ch_seek(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));" (assignment_expression "iVar3 = ch_seek(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier = (call_expression "ch_seek(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier (argument_list "(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" ( (call_expression "CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc0,in_stack_ffffffc4)" ( identifier , identifier ))) )))) ;) (if_statement "if (iVar3 != 0) {\n                    /* WARNING: Subroutine does not return */\n      error(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      error(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0);\n    }" { comment (expression_statement "error(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0);" (call_expression "error(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0)" identifier (argument_list "(PTR_DAT_0004fcec + -0x4160,(PARG *)0x0)" ( (binary_expression "PTR_DAT_0004fcec + -0x4160" identifier + number_literal) , (cast_expression "(PARG *)0x0" ( (type_descriptor "PARG *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "PVar8 = position(0);" (assignment_expression "PVar8 = position(0)" identifier = (call_expression "position(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar3 = (int)((ulonglong)PVar8 >> 0x20);" (assignment_expression "iVar3 = (int)((ulonglong)PVar8 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)PVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)PVar8 >> 0x20)" ( (binary_expression "(ulonglong)PVar8 >> 0x20" (cast_expression "(ulonglong)PVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "PVar9 = position(-2);" (assignment_expression "PVar9 = position(-2)" identifier = (call_expression "position(-2)" identifier (argument_list "(-2)" ( number_literal )))) ;) (expression_statement "puVar1 = PTR_sc_height_0004fcf0;" (assignment_expression "puVar1 = PTR_sc_height_0004fcf0" identifier = identifier) ;) (expression_statement "iVar6 = (int)((ulonglong)PVar9 >> 0x20);" (assignment_expression "iVar6 = (int)((ulonglong)PVar9 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)PVar9 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)PVar9 >> 0x20)" ( (binary_expression "(ulonglong)PVar9 >> 0x20" (cast_expression "(ulonglong)PVar9" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((PVar8 == -1) || ((iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1)))))) {\n      iVar3 = 0;\n      force = uVar4;\n      if (0 < iVar2) {\n        do {\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));\n      }\n      lastmark();\n      *(undefined4 *)PTR_squished_00050090 = 0;\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      forw(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),\n           (int)PVar10);\n    }\n    else {\n      if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n        do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);\n      }\n      lastmark();\n      if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n        clear();\n      }\n      else {\n        home();\n      }\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      iVar2 = (int)PVar7;\n      add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n      back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20));\n    }" if (parenthesized_expression "((PVar8 == -1) || ((iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1))))))" ( (binary_expression "(PVar8 == -1) || ((iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1)))))" (parenthesized_expression "(PVar8 == -1)" ( (binary_expression "PVar8 == -1" identifier == number_literal) )) || (parenthesized_expression "((iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1)))))" ( (parenthesized_expression "(iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1))))" ( (binary_expression "iVar3 <= sline && ((iVar3 != sline || ((uint)PVar8 <= in_a1)))" (binary_expression "iVar3 <= sline" identifier <= identifier) && (parenthesized_expression "((iVar3 != sline || ((uint)PVar8 <= in_a1)))" ( (parenthesized_expression "(iVar3 != sline || ((uint)PVar8 <= in_a1))" ( (binary_expression "iVar3 != sline || ((uint)PVar8 <= in_a1)" (binary_expression "iVar3 != sline" identifier != identifier) || (parenthesized_expression "((uint)PVar8 <= in_a1)" ( (binary_expression "(uint)PVar8 <= in_a1" (cast_expression "(uint)PVar8" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) ))) )) ))) )) ))) )) (compound_statement "{\n      iVar3 = 0;\n      force = uVar4;\n      if (0 < iVar2) {\n        do {\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));\n      }\n      lastmark();\n      *(undefined4 *)PTR_squished_00050090 = 0;\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      forw(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),\n           (int)PVar10);\n    }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "force = uVar4;" (assignment_expression "force = uVar4" identifier = identifier) ;) (if_statement "if (0 < iVar2) {\n        do {\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));\n      }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n        do {\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));\n      }" { (do_statement "do {\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        } while ((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3));" do (compound_statement "{\n          iVar5 = (int)((ulonglong)PVar10 >> 0x20);\n          uVar4 = (uint)PVar10;\n          if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n        }" { (expression_statement "iVar5 = (int)((ulonglong)PVar10 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)PVar10 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)PVar10 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)PVar10 >> 0x20)" ( (binary_expression "(ulonglong)PVar10 >> 0x20" (cast_expression "(ulonglong)PVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar4 = (uint)PVar10;" (assignment_expression "uVar4 = (uint)PVar10" identifier = (cast_expression "(uint)PVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))) {\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }" if (parenthesized_expression "(((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9))))" ( (binary_expression "((PVar9 != -1) && (iVar5 <= iVar6)) &&\n             ((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))" (parenthesized_expression "((PVar9 != -1) && (iVar5 <= iVar6))" ( (binary_expression "(PVar9 != -1) && (iVar5 <= iVar6)" (parenthesized_expression "(PVar9 != -1)" ( (binary_expression "PVar9 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar5 <= iVar6)" ( (binary_expression "iVar5 <= iVar6" identifier <= identifier) ))) )) && (parenthesized_expression "((iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)))" ( (parenthesized_expression "(iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9))" ( (binary_expression "iVar5 != iVar6 || (force = uVar4, uVar4 <= (uint)PVar9)" (binary_expression "iVar5 != iVar6" identifier != identifier) || (parenthesized_expression "(force = uVar4, uVar4 <= (uint)PVar9)" ( (comma_expression "force = uVar4, uVar4 <= (uint)PVar9" (assignment_expression "force = uVar4" identifier = identifier) , (binary_expression "uVar4 <= (uint)PVar9" identifier <= (cast_expression "(uint)PVar9" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) )) ))) )) (compound_statement "{\n            forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }" { (expression_statement "forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9);" (call_expression "forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9)" identifier (argument_list "((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1,0x100000000,force,iVar6,\n                 (uint)PVar9)" ( (binary_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1" (binary_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3" (parenthesized_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2)" ( (binary_expression "*(int *)PTR_sc_height_0004fcf0 - iVar2" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) - identifier) )) + identifier) + number_literal) , number_literal , identifier , identifier , (cast_expression "(uint)PVar9" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (if_statement "if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }" if (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 == 0)" ( (binary_expression "*(int *)PTR_show_attn_0004ff78 == 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" * (cast_expression "(int *)PTR_show_attn_0004ff78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));" (assignment_expression "PVar10 = back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier = (call_expression "back_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier (argument_list "(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" ( (call_expression "CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc0,in_stack_ffffffc4)" ( identifier , identifier ))) )))) ;) }) while (parenthesized_expression "((PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3))" ( (binary_expression "(PVar10 != -1) && (iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3)" (parenthesized_expression "(PVar10 != -1)" ( (binary_expression "PVar10 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3)" ( (comma_expression "iVar3 = iVar3 + 1, force = uVar4, iVar2 != iVar3" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) , (comma_expression "force = uVar4, iVar2 != iVar3" (assignment_expression "force = uVar4" identifier = identifier) , (binary_expression "iVar2 != iVar3" identifier != identifier))) ))) )) ;) })) (expression_statement "lastmark();" (call_expression "lastmark()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)PTR_squished_00050090 = 0;" (assignment_expression "*(undefined4 *)PTR_squished_00050090 = 0" (pointer_expression "*(undefined4 *)PTR_squished_00050090" * (cast_expression "(undefined4 *)PTR_squished_00050090" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;" (assignment_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0" (pointer_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8" * (cast_expression "(undefined4 *)PTR_screen_trashed_0004fdd8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "forw(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),\n           (int)PVar10);" (call_expression "forw(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),\n           (int)PVar10)" identifier (argument_list "(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,uVar4,(int)((ulonglong)PVar10 >> 0x20),\n           (int)PVar10)" ( (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) , number_literal , identifier , (cast_expression "(int)((ulonglong)PVar10 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)PVar10 >> 0x20)" ( (binary_expression "(ulonglong)PVar10 >> 0x20" (cast_expression "(ulonglong)PVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)PVar10" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }) (else_clause "else {\n      if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n        do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);\n      }\n      lastmark();\n      if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n        clear();\n      }\n      else {\n        home();\n      }\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      iVar2 = (int)PVar7;\n      add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n      back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20));\n    }" else (compound_statement "{\n      if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n        do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);\n      }\n      lastmark();\n      if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n        clear();\n      }\n      else {\n        home();\n      }\n      *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n      iVar2 = (int)PVar7;\n      add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n      back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20));\n    }" { (if_statement "if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n        do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);\n      }" if (parenthesized_expression "(iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1)" ( (binary_expression "iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1" identifier < (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) )) (compound_statement "{\n        do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);\n      }" { (do_statement "do {\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        } while (iVar2 < *(int *)puVar1 + -1);" do (compound_statement "{\n          PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar6 = (int)PVar7;\n          if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }\n          PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));\n          iVar5 = (int)((ulonglong)PVar7 >> 0x20);\n          if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }\n          iVar2 = iVar2 + 1;\n        }" { (expression_statement "PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));" (assignment_expression "PVar7 = forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier = (call_expression "forw_line(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier (argument_list "(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" ( (call_expression "CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc0,in_stack_ffffffc4)" ( identifier , identifier ))) )))) ;) (expression_statement "iVar6 = (int)PVar7;" (assignment_expression "iVar6 = (int)PVar7" identifier = (cast_expression "(int)PVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (PVar7 == -1) {\n            PVar7 = -1;\n            break;\n          }" if (parenthesized_expression "(PVar7 == -1)" ( (binary_expression "PVar7 == -1" identifier == number_literal) )) (compound_statement "{\n            PVar7 = -1;\n            break;\n          }" { (expression_statement "PVar7 = -1;" (assignment_expression "PVar7 = -1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));" (assignment_expression "PVar7 = next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier = (call_expression "next_unfiltered(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier (argument_list "(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" ( (call_expression "CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc0,in_stack_ffffffc4)" ( identifier , identifier ))) )))) ;) (expression_statement "iVar5 = (int)((ulonglong)PVar7 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)PVar7 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)PVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)PVar7 >> 0x20)" ( (binary_expression "(ulonglong)PVar7 >> 0x20" (cast_expression "(ulonglong)PVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))) {\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }" if (parenthesized_expression "((iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7))))" ( (binary_expression "(iVar3 <= iVar5) && ((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))" (parenthesized_expression "(iVar3 <= iVar5)" ( (binary_expression "iVar3 <= iVar5" identifier <= identifier) )) && (parenthesized_expression "((iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)))" ( (parenthesized_expression "(iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7))" ( (binary_expression "iVar3 != iVar5 || ((uint)PVar8 <= (uint)PVar7)" (binary_expression "iVar3 != iVar5" identifier != identifier) || (parenthesized_expression "((uint)PVar8 <= (uint)PVar7)" ( (binary_expression "(uint)PVar8 <= (uint)PVar7" (cast_expression "(uint)PVar8" ( (type_descriptor "uint" type_identifier) ) identifier) <= (cast_expression "(uint)PVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) ))) )) (compound_statement "{\n            back(iVar2 + 1,0x100000000,iVar6,iVar3);\n            if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }\n            repaint_hilite(1);\n            return;\n          }" { (expression_statement "back(iVar2 + 1,0x100000000,iVar6,iVar3);" (call_expression "back(iVar2 + 1,0x100000000,iVar6,iVar3)" identifier (argument_list "(iVar2 + 1,0x100000000,iVar6,iVar3)" ( (binary_expression "iVar2 + 1" identifier + number_literal) , number_literal , identifier , identifier ))) ;) (if_statement "if (*(int *)PTR_show_attn_0004ff78 == 0) {\n              return;\n            }" if (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 == 0)" ( (binary_expression "*(int *)PTR_show_attn_0004ff78 == 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" * (cast_expression "(int *)PTR_show_attn_0004ff78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 < *(int *)puVar1 + -1)" ( (binary_expression "iVar2 < *(int *)puVar1 + -1" identifier < (binary_expression "*(int *)puVar1 + -1" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) )) ;) })) (expression_statement "lastmark();" (call_expression "lastmark()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n        clear();\n      }\n      else {\n        home();\n      }" if (parenthesized_expression "(*(int *)PTR_top_scroll_0004fd58 == 0)" ( (binary_expression "*(int *)PTR_top_scroll_0004fd58 == 0" (pointer_expression "*(int *)PTR_top_scroll_0004fd58" * (cast_expression "(int *)PTR_top_scroll_0004fd58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n        clear();\n      }" { (expression_statement "clear();" (call_expression "clear()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        home();\n      }" else (compound_statement "{\n        home();\n      }" { (expression_statement "home();" (call_expression "home()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;" (assignment_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0" (pointer_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8" * (cast_expression "(undefined4 *)PTR_screen_trashed_0004fdd8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "iVar2 = (int)PVar7;" (assignment_expression "iVar2 = (int)PVar7" identifier = (cast_expression "(int)PVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4));" (call_expression "add_back_pos(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" identifier (argument_list "(CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4))" ( (call_expression "CONCAT44(in_stack_ffffffc0,in_stack_ffffffc4)" identifier (argument_list "(in_stack_ffffffc0,in_stack_ffffffc4)" ( identifier , identifier ))) ))) ;) (expression_statement "back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20));" (call_expression "back(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20))" identifier (argument_list "(*(int *)PTR_sc_height_0004fcf0 + -1,0x100000000,iVar2,(int)((ulonglong)PVar7 >> 0x20))" ( (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) , number_literal , identifier , (cast_expression "(int)((ulonglong)PVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)PVar7 >> 0x20)" ( (binary_expression "(ulonglong)PVar7 >> 0x20" (cast_expression "(ulonglong)PVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) }))) }) (else_clause "else {\n    if (iVar3 - iVar2 < 1) {\n      PVar7 = position(0);\n      back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20));\n    }\n    else {\n      PVar7 = position(-2);\n      forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" else (compound_statement "{\n    if (iVar3 - iVar2 < 1) {\n      PVar7 = position(0);\n      back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20));\n    }\n    else {\n      PVar7 = position(-2);\n      forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" { (if_statement "if (iVar3 - iVar2 < 1) {\n      PVar7 = position(0);\n      back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20));\n    }\n    else {\n      PVar7 = position(-2);\n      forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);\n    }" if (parenthesized_expression "(iVar3 - iVar2 < 1)" ( (binary_expression "iVar3 - iVar2 < 1" (binary_expression "iVar3 - iVar2" identifier - identifier) < number_literal) )) (compound_statement "{\n      PVar7 = position(0);\n      back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20));\n    }" { (expression_statement "PVar7 = position(0);" (assignment_expression "PVar7 = position(0)" identifier = (call_expression "position(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20));" (call_expression "back(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20))" identifier (argument_list "(iVar2 - iVar3,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20))" ( (binary_expression "iVar2 - iVar3" identifier - identifier) , number_literal , identifier , (cast_expression "(int)((ulonglong)PVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)PVar7 >> 0x20)" ( (binary_expression "(ulonglong)PVar7 >> 0x20" (cast_expression "(ulonglong)PVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) }) (else_clause "else {\n      PVar7 = position(-2);\n      forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);\n    }" else (compound_statement "{\n      PVar7 = position(-2);\n      forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);\n    }" { (expression_statement "PVar7 = position(-2);" (assignment_expression "PVar7 = position(-2)" identifier = (call_expression "position(-2)" identifier (argument_list "(-2)" ( number_literal )))) ;) (expression_statement "forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7);" (call_expression "forw(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7)" identifier (argument_list "(iVar3 - iVar2,0x100000000,uVar4,(int)((ulonglong)PVar7 >> 0x20),(int)PVar7)" ( (binary_expression "iVar3 - iVar2" identifier - identifier) , number_literal , identifier , (cast_expression "(int)((ulonglong)PVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)PVar7 >> 0x20)" ( (binary_expression "(ulonglong)PVar7 >> 0x20" (cast_expression "(ulonglong)PVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)PVar7" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) }))) (if_statement "if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }" if (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 != 0)" ( (binary_expression "*(int *)PTR_show_attn_0004ff78 != 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" * (cast_expression "(int *)PTR_show_attn_0004ff78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      repaint_hilite(1);\n    }" { (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void jump_loc(int param_1,uint param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  \n  lVar8 = CONCAT44(param_1,param_2);\n  iVar2 = adjsline(param_3);\n  iVar3 = onscreen(param_1,param_2);\n  if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}\n\n" (function_definition "void jump_loc(int param_1,uint param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  \n  lVar8 = CONCAT44(param_1,param_2);\n  iVar2 = adjsline(param_3);\n  iVar3 = onscreen(param_1,param_2);\n  if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "jump_loc(int param_1,uint param_2,undefined4 param_3)" identifier (parameter_list "(int param_1,uint param_2,undefined4 param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  \n  lVar8 = CONCAT44(param_1,param_2);\n  iVar2 = adjsline(param_3);\n  iVar3 = onscreen(param_1,param_2);\n  if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "longlong lVar6;" type_identifier identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "longlong lVar8;" type_identifier identifier ;) (expression_statement "lVar8 = CONCAT44(param_1,param_2);" (assignment_expression "lVar8 = CONCAT44(param_1,param_2)" identifier = (call_expression "CONCAT44(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = adjsline(param_3);" (assignment_expression "iVar2 = adjsline(param_3)" identifier = (call_expression "adjsline(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "iVar3 = onscreen(param_1,param_2);" (assignment_expression "iVar3 = onscreen(param_1,param_2)" identifier = (call_expression "onscreen(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }" { (expression_statement "iVar3 = ch_seek(param_1,param_2);" (assignment_expression "iVar3 = ch_seek(param_1,param_2)" identifier = (call_expression "ch_seek(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }" { (expression_statement "lVar6 = position(0);" (assignment_expression "lVar6 = position(0)" identifier = (call_expression "position(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar3 = (int)((ulonglong)lVar6 >> 0x20);" (assignment_expression "iVar3 = (int)((ulonglong)lVar6 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar6 >> 0x20)" ( (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "lVar7 = position(0xfffffffe);" (assignment_expression "lVar7 = position(0xfffffffe)" identifier = (call_expression "position(0xfffffffe)" identifier (argument_list "(0xfffffffe)" ( number_literal )))) ;) (expression_statement "puVar1 = PTR_sc_height_0004fcf0;" (assignment_expression "puVar1 = PTR_sc_height_0004fcf0" identifier = identifier) ;) (expression_statement "iVar4 = (int)((ulonglong)lVar7 >> 0x20);" (assignment_expression "iVar4 = (int)((ulonglong)lVar7 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar7 >> 0x20)" ( (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" if (parenthesized_expression "((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))" ( (binary_expression "(lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2)))))" (parenthesized_expression "(lVar6 == -1)" ( (binary_expression "lVar6 == -1" identifier == number_literal) )) || (parenthesized_expression "((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2)))))" ( (parenthesized_expression "(iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))" ( (binary_expression "iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2)))" (binary_expression "iVar3 <= param_1" identifier <= identifier) && (parenthesized_expression "((iVar3 != param_1 || ((uint)lVar6 <= param_2)))" ( (parenthesized_expression "(iVar3 != param_1 || ((uint)lVar6 <= param_2))" ( (binary_expression "iVar3 != param_1 || ((uint)lVar6 <= param_2)" (binary_expression "iVar3 != param_1" identifier != identifier) || (parenthesized_expression "((uint)lVar6 <= param_2)" ( (binary_expression "(uint)lVar6 <= param_2" (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) ))) )) ))) )) ))) )) (compound_statement "{\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }" { (do_statement "do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));" do (compound_statement "{\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          }" { (expression_statement "iVar5 = (int)((ulonglong)lVar8 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar8 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" if (parenthesized_expression "(((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7))))" ( (binary_expression "((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))" (parenthesized_expression "((lVar7 != -1) && (iVar5 <= iVar4))" ( (binary_expression "(lVar7 != -1) && (iVar5 <= iVar4)" (parenthesized_expression "(lVar7 != -1)" ( (binary_expression "lVar7 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar5 <= iVar4)" ( (binary_expression "iVar5 <= iVar4" identifier <= identifier) ))) )) && (parenthesized_expression "((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))" ( (parenthesized_expression "(iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7))" ( (binary_expression "iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)" (binary_expression "iVar5 != iVar4" identifier != identifier) || (parenthesized_expression "((uint)lVar8 <= (uint)lVar7)" ( (binary_expression "(uint)lVar8 <= (uint)lVar7" (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier) <= (cast_expression "(uint)lVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) ))) )) (compound_statement "{\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" { (expression_statement "forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);" (call_expression "forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1)" identifier (argument_list "((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1)" ( (binary_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1" (binary_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3" (parenthesized_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2)" ( (binary_expression "*(int *)PTR_sc_height_0004fcf0 - iVar2" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) - identifier) )) + identifier) + number_literal) ))) ;) (if_statement "if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }" if (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 == 0)" ( (binary_expression "*(int *)PTR_show_attn_0004ff78 == 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" * (cast_expression "(int *)PTR_show_attn_0004ff78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                return;\n              }" { (return_statement "return;" return ;) })) (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "lVar8 = back_line(iVar5,(uint)lVar8);" (assignment_expression "lVar8 = back_line(iVar5,(uint)lVar8)" identifier = (call_expression "back_line(iVar5,(uint)lVar8)" identifier (argument_list "(iVar5,(uint)lVar8)" ( identifier , (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) }) while (parenthesized_expression "((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3))" ( (binary_expression "(lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3)" (parenthesized_expression "(lVar8 != -1)" ( (binary_expression "lVar8 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = iVar3 + 1, iVar2 != iVar3)" ( (comma_expression "iVar3 = iVar3 + 1, iVar2 != iVar3" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) , (binary_expression "iVar2 != iVar3" identifier != identifier)) ))) )) ;) })) (expression_statement "lastmark();" (call_expression "lastmark()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)PTR_squished_00050090 = 0;" (assignment_expression "*(undefined4 *)PTR_squished_00050090 = 0" (pointer_expression "*(undefined4 *)PTR_squished_00050090" * (cast_expression "(undefined4 *)PTR_squished_00050090" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;" (assignment_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0" (pointer_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8" * (cast_expression "(undefined4 *)PTR_screen_trashed_0004fdd8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "forw(*(int *)PTR_sc_height_0004fcf0 + -1);" (call_expression "forw(*(int *)PTR_sc_height_0004fcf0 + -1)" identifier (argument_list "(*(int *)PTR_sc_height_0004fcf0 + -1)" ( (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))) ;) }) (else_clause "else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" else (compound_statement "{\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" { (if_statement "if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }" if (parenthesized_expression "(iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1)" ( (binary_expression "iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1" identifier < (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) )) (compound_statement "{\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }" { (do_statement "do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);" do (compound_statement "{\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          }" { (expression_statement "lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);" (assignment_expression "lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" identifier = (call_expression "forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" identifier (argument_list "((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" ( (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }" if (parenthesized_expression "(lVar8 == -1)" ( (binary_expression "lVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              lVar8 = -1;\n              break;\n            }" { (expression_statement "lVar8 = -1;" (assignment_expression "lVar8 = -1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);" (assignment_expression "lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" identifier = (call_expression "next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" identifier (argument_list "((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" ( (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "iVar4 = (int)((ulonglong)lVar8 >> 0x20);" (assignment_expression "iVar4 = (int)((ulonglong)lVar8 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" if (parenthesized_expression "((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8))))" ( (binary_expression "(iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))" (parenthesized_expression "(iVar3 <= iVar4)" ( (binary_expression "iVar3 <= iVar4" identifier <= identifier) )) && (parenthesized_expression "((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))" ( (parenthesized_expression "(iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8))" ( (binary_expression "iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)" (binary_expression "iVar3 != iVar4" identifier != identifier) || (parenthesized_expression "((uint)lVar6 <= (uint)lVar8)" ( (binary_expression "(uint)lVar6 <= (uint)lVar8" (cast_expression "(uint)lVar6" ( (type_descriptor "uint" type_identifier) ) identifier) <= (cast_expression "(uint)lVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) ))) )) (compound_statement "{\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" { (expression_statement "back(iVar2 + 1);" (call_expression "back(iVar2 + 1)" identifier (argument_list "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) ))) ;) (if_statement "if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }" if (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 == 0)" ( (binary_expression "*(int *)PTR_show_attn_0004ff78 == 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" * (cast_expression "(int *)PTR_show_attn_0004ff78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                return;\n              }" { (return_statement "return;" return ;) })) (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 < *(int *)puVar1 + -1)" ( (binary_expression "iVar2 < *(int *)puVar1 + -1" identifier < (binary_expression "*(int *)puVar1 + -1" (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) )) ;) })) (expression_statement "lastmark();" (call_expression "lastmark()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }" if (parenthesized_expression "(*(int *)PTR_top_scroll_0004fd58 == 0)" ( (binary_expression "*(int *)PTR_top_scroll_0004fd58 == 0" (pointer_expression "*(int *)PTR_top_scroll_0004fd58" * (cast_expression "(int *)PTR_top_scroll_0004fd58" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n          clear();\n        }" { (expression_statement "clear();" (call_expression "clear()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          home();\n        }" else (compound_statement "{\n          home();\n        }" { (expression_statement "home();" (call_expression "home()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;" (assignment_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0" (pointer_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8" * (cast_expression "(undefined4 *)PTR_screen_trashed_0004fdd8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);" (call_expression "add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" identifier (argument_list "((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" ( (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" ( (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(int)lVar8" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "back(*(int *)PTR_sc_height_0004fcf0 + -1);" (call_expression "back(*(int *)PTR_sc_height_0004fcf0 + -1)" identifier (argument_list "(*(int *)PTR_sc_height_0004fcf0 + -1)" ( (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" * (cast_expression "(int *)PTR_sc_height_0004fcf0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))) ;) }))) }) (else_clause "else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }" else (compound_statement "{\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }" { (expression_statement "error(PTR_DAT_0004fcec + -0x4160,0);" (call_expression "error(PTR_DAT_0004fcec + -0x4160,0)" identifier (argument_list "(PTR_DAT_0004fcec + -0x4160,0)" ( (binary_expression "PTR_DAT_0004fcec + -0x4160" identifier + number_literal) , number_literal ))) ;) }))) }) (else_clause "else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" else (compound_statement "{\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" { (if_statement "if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }" if (parenthesized_expression "(iVar3 - iVar2 < 1)" ( (binary_expression "iVar3 - iVar2 < 1" (binary_expression "iVar3 - iVar2" identifier - identifier) < number_literal) )) (compound_statement "{\n      position(0);\n      back(iVar2 - iVar3);\n    }" { (expression_statement "position(0);" (call_expression "position(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "back(iVar2 - iVar3);" (call_expression "back(iVar2 - iVar3)" identifier (argument_list "(iVar2 - iVar3)" ( (binary_expression "iVar2 - iVar3" identifier - identifier) ))) ;) }) (else_clause "else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }" else (compound_statement "{\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }" { (expression_statement "position(0xfffffffe);" (call_expression "position(0xfffffffe)" identifier (argument_list "(0xfffffffe)" ( number_literal ))) ;) (expression_statement "forw(iVar3 - iVar2);" (call_expression "forw(iVar3 - iVar2)" identifier (argument_list "(iVar3 - iVar2)" ( (binary_expression "iVar3 - iVar2" identifier - identifier) ))) ;) }))) (if_statement "if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }" if (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 != 0)" ( (binary_expression "*(int *)PTR_show_attn_0004ff78 != 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" * (cast_expression "(int *)PTR_show_attn_0004ff78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal) )) (compound_statement "{\n      repaint_hilite(1);\n    }" { (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) ))) )) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) - IDENT) )) + IDENT) + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != IDENT)) ))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT)) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) ))) ;) }))) (if_statement if (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 ( LIT ))) ;) })) }))) (return_statement return ;) })))
(function_definition "void jump_loc(int param_1,uint param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  \n  lVar8 = CONCAT44(param_1,param_2);\n  iVar2 = adjsline(param_3);\n  iVar3 = onscreen(param_1,param_2);\n  if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "jump_loc(int param_1,uint param_2,undefined4 param_3)" (identifier "jump_loc") (parameter_list "(int param_1,uint param_2,undefined4 param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  longlong lVar6;\n  longlong lVar7;\n  longlong lVar8;\n  \n  lVar8 = CONCAT44(param_1,param_2);\n  iVar2 = adjsline(param_3);\n  iVar3 = onscreen(param_1,param_2);\n  if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "longlong lVar6;" (type_identifier "longlong") (identifier "lVar6") (; ";")) (declaration "longlong lVar7;" (type_identifier "longlong") (identifier "lVar7") (; ";")) (declaration "longlong lVar8;" (type_identifier "longlong") (identifier "lVar8") (; ";")) (expression_statement "lVar8 = CONCAT44(param_1,param_2);" (assignment_expression "lVar8 = CONCAT44(param_1,param_2)" (identifier "lVar8") (= "=") (call_expression "CONCAT44(param_1,param_2)" (identifier "CONCAT44") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar2 = adjsline(param_3);" (assignment_expression "iVar2 = adjsline(param_3)" (identifier "iVar2") (= "=") (call_expression "adjsline(param_3)" (identifier "adjsline") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "iVar3 = onscreen(param_1,param_2);" (assignment_expression "iVar3 = onscreen(param_1,param_2)" (identifier "iVar3") (= "=") (call_expression "onscreen(param_1,param_2)" (identifier "onscreen") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }\n  else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = ch_seek(param_1,param_2);\n    if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }\n  }" ({ "{") (expression_statement "iVar3 = ch_seek(param_1,param_2);" (assignment_expression "iVar3 = ch_seek(param_1,param_2)" (identifier "iVar3") (= "=") (call_expression "ch_seek(param_1,param_2)" (identifier "ch_seek") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }\n    else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      lVar6 = position(0);\n      iVar3 = (int)((ulonglong)lVar6 >> 0x20);\n      lVar7 = position(0xfffffffe);\n      puVar1 = PTR_sc_height_0004fcf0;\n      iVar4 = (int)((ulonglong)lVar7 >> 0x20);\n      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n    }" ({ "{") (expression_statement "lVar6 = position(0);" (assignment_expression "lVar6 = position(0)" (identifier "lVar6") (= "=") (call_expression "position(0)" (identifier "position") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar3 = (int)((ulonglong)lVar6 >> 0x20);" (assignment_expression "iVar3 = (int)((ulonglong)lVar6 >> 0x20)" (identifier "iVar3") (= "=") (cast_expression "(int)((ulonglong)lVar6 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar6 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar6 >> 0x20" (cast_expression "(ulonglong)lVar6" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar6")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "lVar7 = position(0xfffffffe);" (assignment_expression "lVar7 = position(0xfffffffe)" (identifier "lVar7") (= "=") (call_expression "position(0xfffffffe)" (identifier "position") (argument_list "(0xfffffffe)" (( "(") (number_literal "0xfffffffe") () ")")))) (; ";")) (expression_statement "puVar1 = PTR_sc_height_0004fcf0;" (assignment_expression "puVar1 = PTR_sc_height_0004fcf0" (identifier "puVar1") (= "=") (identifier "PTR_sc_height_0004fcf0")) (; ";")) (expression_statement "iVar4 = (int)((ulonglong)lVar7 >> 0x20);" (assignment_expression "iVar4 = (int)((ulonglong)lVar7 >> 0x20)" (identifier "iVar4") (= "=") (cast_expression "(int)((ulonglong)lVar7 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar7")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))\n      {\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }\n      else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" (if "if") (parenthesized_expression "((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))" (( "(") (binary_expression "(lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2)))))" (parenthesized_expression "(lVar6 == -1)" (( "(") (binary_expression "lVar6 == -1" (identifier "lVar6") (== "==") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2)))))" (( "(") (parenthesized_expression "(iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))" (( "(") (binary_expression "iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2)))" (binary_expression "iVar3 <= param_1" (identifier "iVar3") (<= "<=") (identifier "param_1")) (&& "&&") (parenthesized_expression "((iVar3 != param_1 || ((uint)lVar6 <= param_2)))" (( "(") (parenthesized_expression "(iVar3 != param_1 || ((uint)lVar6 <= param_2))" (( "(") (binary_expression "iVar3 != param_1 || ((uint)lVar6 <= param_2)" (binary_expression "iVar3 != param_1" (identifier "iVar3") (!= "!=") (identifier "param_1")) (|| "||") (parenthesized_expression "((uint)lVar6 <= param_2)" (( "(") (binary_expression "(uint)lVar6 <= param_2" (cast_expression "(uint)lVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar6")) (<= "<=") (identifier "param_2")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        iVar3 = 0;\n        if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }\n        lastmark();\n        *(undefined4 *)PTR_squished_00050090 = 0;\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        forw(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar2) {\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }" (if "if") (parenthesized_expression "(0 < iVar2)" (( "(") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n          do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));\n        }" ({ "{") (do_statement "do {\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));" (do "do") (compound_statement "{\n            iVar5 = (int)((ulonglong)lVar8 >> 0x20);\n            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            lVar8 = back_line(iVar5,(uint)lVar8);\n          }" ({ "{") (expression_statement "iVar5 = (int)((ulonglong)lVar8 >> 0x20);" (assignment_expression "iVar5 = (int)((ulonglong)lVar8 >> 0x20)" (identifier "iVar5") (= "=") (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar8")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" (if "if") (parenthesized_expression "(((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7))))" (( "(") (binary_expression "((lVar7 != -1) && (iVar5 <= iVar4)) &&\n               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))" (parenthesized_expression "((lVar7 != -1) && (iVar5 <= iVar4))" (( "(") (binary_expression "(lVar7 != -1) && (iVar5 <= iVar4)" (parenthesized_expression "(lVar7 != -1)" (( "(") (binary_expression "lVar7 != -1" (identifier "lVar7") (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 <= iVar4)" (( "(") (binary_expression "iVar5 <= iVar4" (identifier "iVar5") (<= "<=") (identifier "iVar4")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))" (( "(") (parenthesized_expression "(iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7))" (( "(") (binary_expression "iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)" (binary_expression "iVar5 != iVar4" (identifier "iVar5") (!= "!=") (identifier "iVar4")) (|| "||") (parenthesized_expression "((uint)lVar8 <= (uint)lVar7)" (( "(") (binary_expression "(uint)lVar8 <= (uint)lVar7" (cast_expression "(uint)lVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar8")) (<= "<=") (cast_expression "(uint)lVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar7"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" ({ "{") (expression_statement "forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);" (call_expression "forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1)" (identifier "forw") (argument_list "((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1)" (( "(") (binary_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1" (binary_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3" (parenthesized_expression "(*(int *)PTR_sc_height_0004fcf0 - iVar2)" (( "(") (binary_expression "*(int *)PTR_sc_height_0004fcf0 - iVar2" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" (* "*") (cast_expression "(int *)PTR_sc_height_0004fcf0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sc_height_0004fcf0"))) (- "-") (identifier "iVar2")) () ")")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "-1")) () ")"))) (; ";")) (if_statement "if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }" (if "if") (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 == 0)" (( "(") (binary_expression "*(int *)PTR_show_attn_0004ff78 == 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" (* "*") (cast_expression "(int *)PTR_show_attn_0004ff78" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_show_attn_0004ff78"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return;\n              }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" (identifier "repaint_hilite") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "lVar8 = back_line(iVar5,(uint)lVar8);" (assignment_expression "lVar8 = back_line(iVar5,(uint)lVar8)" (identifier "lVar8") (= "=") (call_expression "back_line(iVar5,(uint)lVar8)" (identifier "back_line") (argument_list "(iVar5,(uint)lVar8)" (( "(") (identifier "iVar5") (, ",") (cast_expression "(uint)lVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar8")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3))" (( "(") (binary_expression "(lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3)" (parenthesized_expression "(lVar8 != -1)" (( "(") (binary_expression "lVar8 != -1" (identifier "lVar8") (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = iVar3 + 1, iVar2 != iVar3)" (( "(") (comma_expression "iVar3 = iVar3 + 1, iVar2 != iVar3" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (, ",") (binary_expression "iVar2 != iVar3" (identifier "iVar2") (!= "!=") (identifier "iVar3"))) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "lastmark();" (call_expression "lastmark()" (identifier "lastmark") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)PTR_squished_00050090 = 0;" (assignment_expression "*(undefined4 *)PTR_squished_00050090 = 0" (pointer_expression "*(undefined4 *)PTR_squished_00050090" (* "*") (cast_expression "(undefined4 *)PTR_squished_00050090" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_squished_00050090"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;" (assignment_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0" (pointer_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8" (* "*") (cast_expression "(undefined4 *)PTR_screen_trashed_0004fdd8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_screen_trashed_0004fdd8"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "forw(*(int *)PTR_sc_height_0004fcf0 + -1);" (call_expression "forw(*(int *)PTR_sc_height_0004fcf0 + -1)" (identifier "forw") (argument_list "(*(int *)PTR_sc_height_0004fcf0 + -1)" (( "(") (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" (* "*") (cast_expression "(int *)PTR_sc_height_0004fcf0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sc_height_0004fcf0"))) (+ "+") (number_literal "-1")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" (else "else") (compound_statement "{\n        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }\n        lastmark();\n        if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }\n        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;\n        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n        back(*(int *)PTR_sc_height_0004fcf0 + -1);\n      }" ({ "{") (if_statement "if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }" (if "if") (parenthesized_expression "(iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1)" (( "(") (binary_expression "iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1" (identifier "iVar2") (< "<") (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" (* "*") (cast_expression "(int *)PTR_sc_height_0004fcf0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sc_height_0004fcf0"))) (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n          do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);\n        }" ({ "{") (do_statement "do {\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          } while (iVar2 < *(int *)puVar1 + -1);" (do "do") (compound_statement "{\n            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }\n            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);\n            iVar4 = (int)((ulonglong)lVar8 >> 0x20);\n            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }\n            iVar2 = iVar2 + 1;\n          }" ({ "{") (expression_statement "lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);" (assignment_expression "lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" (identifier "lVar8") (= "=") (call_expression "forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" (identifier "forw_line") (argument_list "((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" (( "(") (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar8")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)lVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar8")) () ")")))) (; ";")) (if_statement "if (lVar8 == -1) {\n              lVar8 = -1;\n              break;\n            }" (if "if") (parenthesized_expression "(lVar8 == -1)" (( "(") (binary_expression "lVar8 == -1" (identifier "lVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              lVar8 = -1;\n              break;\n            }" ({ "{") (expression_statement "lVar8 = -1;" (assignment_expression "lVar8 = -1" (identifier "lVar8") (= "=") (number_literal "-1")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);" (assignment_expression "lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" (identifier "lVar8") (= "=") (call_expression "next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" (identifier "next_unfiltered") (argument_list "((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" (( "(") (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar8")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)lVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar8")) () ")")))) (; ";")) (expression_statement "iVar4 = (int)((ulonglong)lVar8 >> 0x20);" (assignment_expression "iVar4 = (int)((ulonglong)lVar8 >> 0x20)" (identifier "iVar4") (= "=") (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar8")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" (if "if") (parenthesized_expression "((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8))))" (( "(") (binary_expression "(iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))" (parenthesized_expression "(iVar3 <= iVar4)" (( "(") (binary_expression "iVar3 <= iVar4" (identifier "iVar3") (<= "<=") (identifier "iVar4")) () ")")) (&& "&&") (parenthesized_expression "((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))" (( "(") (parenthesized_expression "(iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8))" (( "(") (binary_expression "iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)" (binary_expression "iVar3 != iVar4" (identifier "iVar3") (!= "!=") (identifier "iVar4")) (|| "||") (parenthesized_expression "((uint)lVar6 <= (uint)lVar8)" (( "(") (binary_expression "(uint)lVar6 <= (uint)lVar8" (cast_expression "(uint)lVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar6")) (<= "<=") (cast_expression "(uint)lVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar8"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              back(iVar2 + 1);\n              if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }\n              repaint_hilite(1);\n              return;\n            }" ({ "{") (expression_statement "back(iVar2 + 1);" (call_expression "back(iVar2 + 1)" (identifier "back") (argument_list "(iVar2 + 1)" (( "(") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) () ")"))) (; ";")) (if_statement "if (*(int *)PTR_show_attn_0004ff78 == 0) {\n                return;\n              }" (if "if") (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 == 0)" (( "(") (binary_expression "*(int *)PTR_show_attn_0004ff78 == 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" (* "*") (cast_expression "(int *)PTR_show_attn_0004ff78" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_show_attn_0004ff78"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return;\n              }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" (identifier "repaint_hilite") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 < *(int *)puVar1 + -1)" (( "(") (binary_expression "iVar2 < *(int *)puVar1 + -1" (identifier "iVar2") (< "<") (binary_expression "*(int *)puVar1 + -1" (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (+ "+") (number_literal "-1"))) () ")")) (; ";")) (} "}"))) (expression_statement "lastmark();" (call_expression "lastmark()" (identifier "lastmark") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(int *)PTR_top_scroll_0004fd58 == 0) {\n          clear();\n        }\n        else {\n          home();\n        }" (if "if") (parenthesized_expression "(*(int *)PTR_top_scroll_0004fd58 == 0)" (( "(") (binary_expression "*(int *)PTR_top_scroll_0004fd58 == 0" (pointer_expression "*(int *)PTR_top_scroll_0004fd58" (* "*") (cast_expression "(int *)PTR_top_scroll_0004fd58" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_top_scroll_0004fd58"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          clear();\n        }" ({ "{") (expression_statement "clear();" (call_expression "clear()" (identifier "clear") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          home();\n        }" (else "else") (compound_statement "{\n          home();\n        }" ({ "{") (expression_statement "home();" (call_expression "home()" (identifier "home") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;" (assignment_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8 = 0" (pointer_expression "*(undefined4 *)PTR_screen_trashed_0004fdd8" (* "*") (cast_expression "(undefined4 *)PTR_screen_trashed_0004fdd8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_screen_trashed_0004fdd8"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);" (call_expression "add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" (identifier "add_back_pos") (argument_list "((int)((ulonglong)lVar8 >> 0x20),(int)lVar8)" (( "(") (cast_expression "(int)((ulonglong)lVar8 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar8 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar8 >> 0x20" (cast_expression "(ulonglong)lVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar8")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(int)lVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar8")) () ")"))) (; ";")) (expression_statement "back(*(int *)PTR_sc_height_0004fcf0 + -1);" (call_expression "back(*(int *)PTR_sc_height_0004fcf0 + -1)" (identifier "back") (argument_list "(*(int *)PTR_sc_height_0004fcf0 + -1)" (( "(") (binary_expression "*(int *)PTR_sc_height_0004fcf0 + -1" (pointer_expression "*(int *)PTR_sc_height_0004fcf0" (* "*") (cast_expression "(int *)PTR_sc_height_0004fcf0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sc_height_0004fcf0"))) (+ "+") (number_literal "-1")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }" (else "else") (compound_statement "{\n      error(PTR_DAT_0004fcec + -0x4160,0);\n    }" ({ "{") (expression_statement "error(PTR_DAT_0004fcec + -0x4160,0);" (call_expression "error(PTR_DAT_0004fcec + -0x4160,0)" (identifier "error") (argument_list "(PTR_DAT_0004fcec + -0x4160,0)" (( "(") (binary_expression "PTR_DAT_0004fcec + -0x4160" (identifier "PTR_DAT_0004fcec") (+ "+") (number_literal "-0x4160")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" (else "else") (compound_statement "{\n    if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }\n    if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }\n  }" ({ "{") (if_statement "if (iVar3 - iVar2 < 1) {\n      position(0);\n      back(iVar2 - iVar3);\n    }\n    else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }" (if "if") (parenthesized_expression "(iVar3 - iVar2 < 1)" (( "(") (binary_expression "iVar3 - iVar2 < 1" (binary_expression "iVar3 - iVar2" (identifier "iVar3") (- "-") (identifier "iVar2")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      position(0);\n      back(iVar2 - iVar3);\n    }" ({ "{") (expression_statement "position(0);" (call_expression "position(0)" (identifier "position") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "back(iVar2 - iVar3);" (call_expression "back(iVar2 - iVar3)" (identifier "back") (argument_list "(iVar2 - iVar3)" (( "(") (binary_expression "iVar2 - iVar3" (identifier "iVar2") (- "-") (identifier "iVar3")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }" (else "else") (compound_statement "{\n      position(0xfffffffe);\n      forw(iVar3 - iVar2);\n    }" ({ "{") (expression_statement "position(0xfffffffe);" (call_expression "position(0xfffffffe)" (identifier "position") (argument_list "(0xfffffffe)" (( "(") (number_literal "0xfffffffe") () ")"))) (; ";")) (expression_statement "forw(iVar3 - iVar2);" (call_expression "forw(iVar3 - iVar2)" (identifier "forw") (argument_list "(iVar3 - iVar2)" (( "(") (binary_expression "iVar3 - iVar2" (identifier "iVar3") (- "-") (identifier "iVar2")) () ")"))) (; ";")) (} "}")))) (if_statement "if (*(int *)PTR_show_attn_0004ff78 != 0) {\n      repaint_hilite(1);\n    }" (if "if") (parenthesized_expression "(*(int *)PTR_show_attn_0004ff78 != 0)" (( "(") (binary_expression "*(int *)PTR_show_attn_0004ff78 != 0" (pointer_expression "*(int *)PTR_show_attn_0004ff78" (* "*") (cast_expression "(int *)PTR_show_attn_0004ff78" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_show_attn_0004ff78"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      repaint_hilite(1);\n    }" ({ "{") (expression_statement "repaint_hilite(1);" (call_expression "repaint_hilite(1)" (identifier "repaint_hilite") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(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: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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) (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 (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (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: (identifier))) right: (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: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (identifier))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal))))))))) (return_statement))))

void MASKED(int param_1,uint param_2,undefined4 param_3)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  longlong lVar6;
  longlong lVar7;
  longlong lVar8;
  
  lVar8 = CONCAT44(param_1,param_2);
  iVar2 = adjsline(param_3);
  iVar3 = onscreen(param_1,param_2);
  if (iVar3 < 0) {
    iVar3 = ch_seek(param_1,param_2);
    if (iVar3 == 0) {
      lVar6 = position(0);
      iVar3 = (int)((ulonglong)lVar6 >> 0x20);
      lVar7 = position(0xfffffffe);
      puVar1 = PTR_sc_height_0004fcf0;
      iVar4 = (int)((ulonglong)lVar7 >> 0x20);
      if ((lVar6 == -1) || ((iVar3 <= param_1 && ((iVar3 != param_1 || ((uint)lVar6 <= param_2))))))
      {
        iVar3 = 0;
        if (0 < iVar2) {
          do {
            iVar5 = (int)((ulonglong)lVar8 >> 0x20);
            if (((lVar7 != -1) && (iVar5 <= iVar4)) &&
               ((iVar5 != iVar4 || ((uint)lVar8 <= (uint)lVar7)))) {
              forw((*(int *)PTR_sc_height_0004fcf0 - iVar2) + iVar3 + -1);
              if (*(int *)PTR_show_attn_0004ff78 == 0) {
                return;
              }
              repaint_hilite(1);
              return;
            }
            lVar8 = back_line(iVar5,(uint)lVar8);
          } while ((lVar8 != -1) && (iVar3 = iVar3 + 1, iVar2 != iVar3));
        }
        lastmark();
        *(undefined4 *)PTR_squished_00050090 = 0;
        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;
        forw(*(int *)PTR_sc_height_0004fcf0 + -1);
      }
      else {
        if (iVar2 < *(int *)PTR_sc_height_0004fcf0 + -1) {
          do {
            lVar8 = forw_line((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);
            if (lVar8 == -1) {
              lVar8 = -1;
              break;
            }
            lVar8 = next_unfiltered((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);
            iVar4 = (int)((ulonglong)lVar8 >> 0x20);
            if ((iVar3 <= iVar4) && ((iVar3 != iVar4 || ((uint)lVar6 <= (uint)lVar8)))) {
              back(iVar2 + 1);
              if (*(int *)PTR_show_attn_0004ff78 == 0) {
                return;
              }
              repaint_hilite(1);
              return;
            }
            iVar2 = iVar2 + 1;
          } while (iVar2 < *(int *)puVar1 + -1);
        }
        lastmark();
        if (*(int *)PTR_top_scroll_0004fd58 == 0) {
          clear();
        }
        else {
          home();
        }
        *(undefined4 *)PTR_screen_trashed_0004fdd8 = 0;
        add_back_pos((int)((ulonglong)lVar8 >> 0x20),(int)lVar8);
        back(*(int *)PTR_sc_height_0004fcf0 + -1);
      }
    }
    else {
      error(PTR_DAT_0004fcec + -0x4160,0);
    }
  }
  else {
    if (iVar3 - iVar2 < 1) {
      position(0);
      back(iVar2 - iVar3);
    }
    else {
      position(0xfffffffe);
      forw(iVar3 - iVar2);
    }
    if (*(int *)PTR_show_attn_0004ff78 != 0) {
      repaint_hilite(1);
    }
  }
  return;
}

