
/* WARNING: Unknown calling convention */

int do_mouse(void)

{
  int iVar1;
  int iVar2;
  size_t sVar3;
  int iVar4;
  filestruct *old_current;
  char *text;
  undefined *puVar5;
  int click_row;
  int click_col;
  size_t leftedge;
  int local_24;
  
  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;
  iVar1 = get_mouseinput(&click_row,&click_col,true);
  if (iVar1 == 0) {
    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)
                      (*(undefined4 *)PTR_edit_0007c568,&click_row,&click_col,0);
    iVar1 = 2;
    if (iVar2 != 0) {
      iVar1 = *(int *)PTR_openfile_0007c6e8;
      old_current = *(filestruct **)(iVar1 + 0x10);
      iVar2 = *(int *)(iVar1 + 0x24);
      iVar1 = *(int *)(iVar1 + 0x1c);
      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {
        sVar3 = xplustabs();
        leftedge = get_page_start(sVar3);
      }
      else {
        sVar3 = xplustabs();
        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));
      }
      if (click_row - iVar2 < 0) {
        go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),
                       &leftedge);
      }
      else {
        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),
                          &leftedge);
      }
      puVar5 = PTR_openfile_0007c6e8;
      text = (char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);
      sVar3 = actual_last_column(leftedge,click_col);
      iVar4 = *(int *)puVar5;
      sVar3 = actual_x(text,sVar3);
      *(size_t *)(iVar4 + 0x1c) = sVar3;
      if ((click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)) {
        do_mark();
      }
      else {
        cutbuffer_reset();
      }
      edit_redraw(old_current,CENTERING);
      iVar1 = 2;
    }
  }
  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {
    return iVar1;
  }
  puVar5 = PTR___stack_chk_fail_0007d0f8;
  (*(code *)PTR___stack_chk_fail_0007d0f8)();
  if (local_24 == *(int *)(puVar5 + 0x49ec8)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x49ecc)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x49ed8)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x49edc)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x4a1ac)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x4a1b0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x49ed0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x49ed4)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x4a1bc)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x4a1c0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x49ee0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x49ee4)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar5 + 0x49e58)) {
    return 1;
  }
  if (local_24 != *(int *)(puVar5 + 0x49e38)) {
    if (local_24 != *(int *)(puVar5 + 0x4a1c4)) {
      return (uint)(local_24 == *(int *)(puVar5 + 0x4a1c8));
    }
    return 1;
  }
  return 1;
}



uint do_mouse(void)

{
  uint uVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined *puVar8;
  int local_30;
  undefined4 local_2c;
  undefined4 local_28;
  int local_24;
  
  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;
  uVar1 = get_mouseinput(&local_30,&local_2c,1);
  if (uVar1 == 0) {
    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)
                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);
    uVar1 = 2;
    if (iVar2 != 0) {
      iVar2 = *(int *)PTR_openfile_0007c6e8;
      uVar6 = *(undefined4 *)(iVar2 + 0x10);
      iVar4 = *(int *)(iVar2 + 0x24);
      iVar2 = *(int *)(iVar2 + 0x1c);
      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {
        uVar3 = xplustabs();
        local_28 = get_page_start(uVar3);
      }
      else {
        uVar3 = xplustabs();
        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));
      }
      if (local_30 - iVar4 < 0) {
        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);
      }
      else {
        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);
      }
      puVar8 = PTR_openfile_0007c6e8;
      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);
      uVar3 = actual_last_column(local_28,local_2c);
      iVar5 = *(int *)puVar8;
      uVar3 = actual_x(uVar7,uVar3);
      *(undefined4 *)(iVar5 + 0x1c) = uVar3;
      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {
        do_mark();
      }
      else {
        cutbuffer_reset();
      }
      edit_redraw(uVar6,0);
      uVar1 = 2;
    }
  }
  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {
    return uVar1;
  }
  puVar8 = PTR___stack_chk_fail_0007d0f8;
  (*(code *)PTR___stack_chk_fail_0007d0f8)();
  if (local_24 == *(int *)(puVar8 + 0x49ec8)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ecc)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ed8)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49edc)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ed0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ed4)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ee0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ee4)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49e58)) {
    return 1;
  }
  if (local_24 != *(int *)(puVar8 + 0x49e38)) {
    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {
      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));
    }
    return 1;
  }
  return 1;
}


lui gp,0x5
addiu gp,gp,0x1ff8
addu gp,gp,t9
addiu sp,sp,-0x48
sw ra,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,0x10(sp)
lw v0,-0x73f4(gp)
lw v0,0x0(v0)
sw v0,0x24(sp)
li a2,0x1
addiu a1,sp,0x1c
addiu a0,sp,0x18
lw t9,-0x7f20(gp)
bal 0x000486b8
_nop
lw gp,0x10(sp)
beq v0,zero,0x000325bc
_or a3,zero,zero
lw a0,0x24(sp)
lw v1,-0x73f4(gp)
lw v1,0x0(v1)
bne a0,v1,0x00032764
_lw ra,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,0x48
addiu a2,sp,0x1c
addiu a1,sp,0x18
lw v0,-0x7fb8(gp)
lw a0,0x0(v0)
lw t9,-0x75e4(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00032588
_li v0,0x2
lw v0,-0x7e38(gp)
lw v0,0x0(v0)
lw s3,0x10(v0)
lw s1,0x18(sp)
lw s0,0x24(v0)
lw s4,0x1c(v0)
lw v0,-0x7f9c(gp)
lw v0,0x4(v0)
andi v0,v0,0x2
beq v0,zero,0x000326fc
_subu s2,s1,s0
lw t9,-0x7dfc(gp)
bal 0x00046a60
_nop
lw gp,0x10(sp)
lw v1,-0x7e38(gp)
lw v1,0x0(v1)
lw a1,0x10(v1)
or a0,v0,zero
lw t9,-0x7dc4(gp)
bal 0x0004bfd4
_nop
lw gp,0x10(sp)
sw v0,0x20(sp)
bltz s2,0x00032728
_lw v0,-0x7e38(gp)
lw a1,0x0(v0)
addiu a2,sp,0x20
addiu a1,a1,0x10
or a0,s2,zero
lw t9,-0x7ad8(gp)
bal 0x0004bcf8
_nop
lw gp,0x10(sp)
lw s2,-0x7e38(gp)
lw v0,0x0(s2)
lw v0,0x10(v0)
lw s5,0x0(v0)
lw a1,0x1c(sp)
lw a0,0x20(sp)
lw t9,-0x7af0(gp)
bal 0x0004d3bc
_nop
lw gp,0x10(sp)
lw s2,0x0(s2)
or a1,v0,zero
or a0,s5,zero
lw t9,-0x7f8c(gp)
bal 0x000468d0
_nop
lw gp,0x10(sp)
bne s1,s0,0x000326cc
_sw v0,0x1c(s2)
lw v0,-0x7e38(gp)
lw v0,0x0(v0)
lw v0,0x1c(v0)
beq v0,s4,0x00032750
_lw t9,-0x7c30(gp)
lw t9,-0x7a08(gp)
bal 0x0001cb60
_nop
lw gp,0x10(sp)
or a1,zero,zero
or a0,s3,zero
lw t9,-0x7ac8(gp)
bal 0x0004e790
_nop
lw gp,0x10(sp)
b 0x00032588
_li v0,0x2
lw t9,-0x7dfc(gp)
bal 0x00046a60
_nop
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x7a04(gp)
bal 0x0004684c
_nop
lw gp,0x10(sp)
b 0x00032644
_sw v0,0x20(sp)
lw a1,0x0(v0)
addiu a2,sp,0x20
addiu a1,a1,0x10
subu a0,s0,s1
lw t9,-0x7ae8(gp)
bal 0x0004c04c
_nop
lw gp,0x10(sp)
b 0x00032670
_lw s2,-0x7e38(gp)
bal 0x0003c830
_nop
lw gp,0x10(sp)
b 0x000326e0
_or a1,zero,zero
lw t9,-0x7428(gp)
jalr t9
_nop
(translation_unit "uint do_mouse(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar1 = get_mouseinput(&local_30,&local_2c,1);\n  if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }\n  puVar8 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}\n\n" (function_definition "uint do_mouse(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar1 = get_mouseinput(&local_30,&local_2c,1);\n  if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }\n  puVar8 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}" type_identifier (function_declarator "do_mouse(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar1 = get_mouseinput(&local_30,&local_2c,1);\n  if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }\n  puVar8 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0007d12c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0007d12c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0007d12c" * (cast_expression "(int *)PTR___stack_chk_guard_0007d12c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar1 = get_mouseinput(&local_30,&local_2c,1);" (assignment_expression "uVar1 = get_mouseinput(&local_30,&local_2c,1)" identifier = (call_expression "get_mouseinput(&local_30,&local_2c,1)" identifier (argument_list "(&local_30,&local_2c,1)" ( (pointer_expression "&local_30" & identifier) , (pointer_expression "&local_2c" & identifier) , number_literal )))) ;) (if_statement "if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);" (assignment_expression "iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0)" identifier = (call_expression "(*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0)" (parenthesized_expression "(*(code *)PTR_wmouse_trafo_0007cf3c)" ( (pointer_expression "*(code *)PTR_wmouse_trafo_0007cf3c" * (cast_expression "(code *)PTR_wmouse_trafo_0007cf3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0)" ( (pointer_expression "*(undefined4 *)PTR_edit_0007c568" * (cast_expression "(undefined4 *)PTR_edit_0007c568" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "&local_30" & identifier) , (pointer_expression "&local_2c" & identifier) , number_literal )))) ;) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }" { (expression_statement "iVar2 = *(int *)PTR_openfile_0007c6e8;" (assignment_expression "iVar2 = *(int *)PTR_openfile_0007c6e8" identifier = (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar2 + 0x10);" (assignment_expression "uVar6 = *(undefined4 *)(iVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar2 + 0x24);" (assignment_expression "iVar4 = *(int *)(iVar2 + 0x24)" identifier = (pointer_expression "*(int *)(iVar2 + 0x24)" * (cast_expression "(int *)(iVar2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(iVar2 + 0x1c);" (assignment_expression "iVar2 = *(int *)(iVar2 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar2 + 0x1c)" * (cast_expression "(int *)(iVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" if (parenthesized_expression "((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0)" ( (binary_expression "(*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(PTR_flags_0007c584 + 4) & 2)" ( (binary_expression "*(uint *)(PTR_flags_0007c584 + 4) & 2" (pointer_expression "*(uint *)(PTR_flags_0007c584 + 4)" * (cast_expression "(uint *)(PTR_flags_0007c584 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_flags_0007c584 + 4)" ( (binary_expression "PTR_flags_0007c584 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }" { (expression_statement "uVar3 = xplustabs();" (assignment_expression "uVar3 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_28 = get_page_start(uVar3);" (assignment_expression "local_28 = get_page_start(uVar3)" identifier = (call_expression "get_page_start(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) }) (else_clause "else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" else (compound_statement "{\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" { (expression_statement "uVar3 = xplustabs();" (assignment_expression "uVar3 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier = (call_expression "leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier (argument_list "(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10)" * (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) )))) ;) }))) (if_statement "if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" if (parenthesized_expression "(local_30 - iVar4 < 0)" ( (binary_expression "local_30 - iVar4 < 0" (binary_expression "local_30 - iVar4" identifier - identifier) < number_literal) )) (compound_statement "{\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" { (expression_statement "go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);" (call_expression "go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" identifier (argument_list "(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" ( (binary_expression "iVar4 - local_30" identifier - identifier) , (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) , (pointer_expression "&local_28" & identifier) ))) ;) }) (else_clause "else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" else (compound_statement "{\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" { (expression_statement "go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);" (call_expression "go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" identifier (argument_list "(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" ( (binary_expression "local_30 - iVar4" identifier - identifier) , (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) , (pointer_expression "&local_28" & identifier) ))) ;) }))) (expression_statement "puVar8 = PTR_openfile_0007c6e8;" (assignment_expression "puVar8 = PTR_openfile_0007c6e8" identifier = identifier) ;) (expression_statement "uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);" (assignment_expression "uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" * (pointer_expression "*(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" * (cast_expression "(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))))) ;) (expression_statement "uVar3 = actual_last_column(local_28,local_2c);" (assignment_expression "uVar3 = actual_last_column(local_28,local_2c)" identifier = (call_expression "actual_last_column(local_28,local_2c)" identifier (argument_list "(local_28,local_2c)" ( identifier , identifier )))) ;) (expression_statement "iVar5 = *(int *)puVar8;" (assignment_expression "iVar5 = *(int *)puVar8" identifier = (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar3 = actual_x(uVar7,uVar3);" (assignment_expression "uVar3 = actual_x(uVar7,uVar3)" identifier = (call_expression "actual_x(uVar7,uVar3)" identifier (argument_list "(uVar7,uVar3)" ( identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1c) = uVar3;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1c) = uVar3" (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" * (cast_expression "(undefined4 *)(iVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }" if (parenthesized_expression "((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2))" ( (binary_expression "(local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)" (parenthesized_expression "(local_30 == iVar4)" ( (binary_expression "local_30 == iVar4" identifier == identifier) )) && (parenthesized_expression "(*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)" ( (binary_expression "*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2" (pointer_expression "*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" * (cast_expression "(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x1c" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n        do_mark();\n      }" { (expression_statement "do_mark();" (call_expression "do_mark()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        cutbuffer_reset();\n      }" else (compound_statement "{\n        cutbuffer_reset();\n      }" { (expression_statement "cutbuffer_reset();" (call_expression "cutbuffer_reset()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "edit_redraw(uVar6,0);" (call_expression "edit_redraw(uVar6,0)" identifier (argument_list "(uVar6,0)" ( identifier , number_literal ))) ;) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" identifier = number_literal) ;) })) })) (if_statement "if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }" if (parenthesized_expression "(local_24 == *(int *)PTR___stack_chk_guard_0007d12c)" ( (binary_expression "local_24 == *(int *)PTR___stack_chk_guard_0007d12c" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_0007d12c" * (cast_expression "(int *)PTR___stack_chk_guard_0007d12c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar1;\n  }" { (return_statement "return uVar1;" return identifier ;) })) (expression_statement "puVar8 = PTR___stack_chk_fail_0007d0f8;" (assignment_expression "puVar8 = PTR___stack_chk_fail_0007d0f8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0007d0f8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0007d0f8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0007d0f8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0007d0f8" * (cast_expression "(code *)PTR___stack_chk_fail_0007d0f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ec8))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ec8)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ec8)" * (cast_expression "(int *)(puVar8 + 0x49ec8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ec8)" ( (binary_expression "puVar8 + 0x49ec8" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ecc))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ecc)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ecc)" * (cast_expression "(int *)(puVar8 + 0x49ecc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ecc)" ( (binary_expression "puVar8 + 0x49ecc" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ed8))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ed8)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ed8)" * (cast_expression "(int *)(puVar8 + 0x49ed8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ed8)" ( (binary_expression "puVar8 + 0x49ed8" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49edc))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49edc)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49edc)" * (cast_expression "(int *)(puVar8 + 0x49edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49edc)" ( (binary_expression "puVar8 + 0x49edc" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1ac))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1ac)" identifier == (pointer_expression "*(int *)(puVar8 + 0x4a1ac)" * (cast_expression "(int *)(puVar8 + 0x4a1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1ac)" ( (binary_expression "puVar8 + 0x4a1ac" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1b0))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1b0)" identifier == (pointer_expression "*(int *)(puVar8 + 0x4a1b0)" * (cast_expression "(int *)(puVar8 + 0x4a1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1b0)" ( (binary_expression "puVar8 + 0x4a1b0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ed0))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ed0)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ed0)" * (cast_expression "(int *)(puVar8 + 0x49ed0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ed0)" ( (binary_expression "puVar8 + 0x49ed0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ed4))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ed4)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ed4)" * (cast_expression "(int *)(puVar8 + 0x49ed4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ed4)" ( (binary_expression "puVar8 + 0x49ed4" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1bc))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1bc)" identifier == (pointer_expression "*(int *)(puVar8 + 0x4a1bc)" * (cast_expression "(int *)(puVar8 + 0x4a1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1bc)" ( (binary_expression "puVar8 + 0x4a1bc" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1c0))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1c0)" identifier == (pointer_expression "*(int *)(puVar8 + 0x4a1c0)" * (cast_expression "(int *)(puVar8 + 0x4a1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1c0)" ( (binary_expression "puVar8 + 0x4a1c0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ee0))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ee0)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ee0)" * (cast_expression "(int *)(puVar8 + 0x49ee0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ee0)" ( (binary_expression "puVar8 + 0x49ee0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ee4))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ee4)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ee4)" * (cast_expression "(int *)(puVar8 + 0x49ee4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ee4)" ( (binary_expression "puVar8 + 0x49ee4" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49e58))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49e58)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49e58)" * (cast_expression "(int *)(puVar8 + 0x49e58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49e58)" ( (binary_expression "puVar8 + 0x49e58" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }" if (parenthesized_expression "(local_24 != *(int *)(puVar8 + 0x49e38))" ( (binary_expression "local_24 != *(int *)(puVar8 + 0x49e38)" identifier != (pointer_expression "*(int *)(puVar8 + 0x49e38)" * (cast_expression "(int *)(puVar8 + 0x49e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49e38)" ( (binary_expression "puVar8 + 0x49e38" identifier + number_literal) ))))) )) (compound_statement "{\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }" { (if_statement "if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }" if (parenthesized_expression "(local_24 != *(int *)(puVar8 + 0x4a1c4))" ( (binary_expression "local_24 != *(int *)(puVar8 + 0x4a1c4)" identifier != (pointer_expression "*(int *)(puVar8 + 0x4a1c4)" * (cast_expression "(int *)(puVar8 + 0x4a1c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1c4)" ( (binary_expression "puVar8 + 0x4a1c4" identifier + number_literal) ))))) )) (compound_statement "{\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }" { (return_statement "return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));" return (call_expression "(uint)(local_24 == *(int *)(puVar8 + 0x4a1c8))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_24 == *(int *)(puVar8 + 0x4a1c8))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1c8)" identifier == (pointer_expression "*(int *)(puVar8 + 0x4a1c8)" * (cast_expression "(int *)(puVar8 + 0x4a1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1c8)" ( (binary_expression "puVar8 + 0x4a1c8" identifier + number_literal) ))))) ))) ;) })) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nint do_mouse(void)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  int iVar4;\n  filestruct *old_current;\n  char *text;\n  undefined *puVar5;\n  int click_row;\n  int click_col;\n  size_t leftedge;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  iVar1 = get_mouseinput(&click_row,&click_col,true);\n  if (iVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&click_row,&click_col,0);\n    iVar1 = 2;\n    if (iVar2 != 0) {\n      iVar1 = *(int *)PTR_openfile_0007c6e8;\n      old_current = *(filestruct **)(iVar1 + 0x10);\n      iVar2 = *(int *)(iVar1 + 0x24);\n      iVar1 = *(int *)(iVar1 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        sVar3 = xplustabs();\n        leftedge = get_page_start(sVar3);\n      }\n      else {\n        sVar3 = xplustabs();\n        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (click_row - iVar2 < 0) {\n        go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge);\n      }\n      else {\n        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);\n      }\n      puVar5 = PTR_openfile_0007c6e8;\n      text = (char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      sVar3 = actual_last_column(leftedge,click_col);\n      iVar4 = *(int *)puVar5;\n      sVar3 = actual_x(text,sVar3);\n      *(size_t *)(iVar4 + 0x1c) = sVar3;\n      if ((click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(old_current,CENTERING);\n      iVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return iVar1;\n  }\n  puVar5 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar5 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar5 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar5 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar5 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}\n\n" comment (function_definition "int do_mouse(void)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  int iVar4;\n  filestruct *old_current;\n  char *text;\n  undefined *puVar5;\n  int click_row;\n  int click_col;\n  size_t leftedge;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  iVar1 = get_mouseinput(&click_row,&click_col,true);\n  if (iVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&click_row,&click_col,0);\n    iVar1 = 2;\n    if (iVar2 != 0) {\n      iVar1 = *(int *)PTR_openfile_0007c6e8;\n      old_current = *(filestruct **)(iVar1 + 0x10);\n      iVar2 = *(int *)(iVar1 + 0x24);\n      iVar1 = *(int *)(iVar1 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        sVar3 = xplustabs();\n        leftedge = get_page_start(sVar3);\n      }\n      else {\n        sVar3 = xplustabs();\n        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (click_row - iVar2 < 0) {\n        go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge);\n      }\n      else {\n        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);\n      }\n      puVar5 = PTR_openfile_0007c6e8;\n      text = (char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      sVar3 = actual_last_column(leftedge,click_col);\n      iVar4 = *(int *)puVar5;\n      sVar3 = actual_x(text,sVar3);\n      *(size_t *)(iVar4 + 0x1c) = sVar3;\n      if ((click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(old_current,CENTERING);\n      iVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return iVar1;\n  }\n  puVar5 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar5 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar5 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar5 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar5 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}" primitive_type (function_declarator "do_mouse(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  int iVar4;\n  filestruct *old_current;\n  char *text;\n  undefined *puVar5;\n  int click_row;\n  int click_col;\n  size_t leftedge;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  iVar1 = get_mouseinput(&click_row,&click_col,true);\n  if (iVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&click_row,&click_col,0);\n    iVar1 = 2;\n    if (iVar2 != 0) {\n      iVar1 = *(int *)PTR_openfile_0007c6e8;\n      old_current = *(filestruct **)(iVar1 + 0x10);\n      iVar2 = *(int *)(iVar1 + 0x24);\n      iVar1 = *(int *)(iVar1 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        sVar3 = xplustabs();\n        leftedge = get_page_start(sVar3);\n      }\n      else {\n        sVar3 = xplustabs();\n        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (click_row - iVar2 < 0) {\n        go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge);\n      }\n      else {\n        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);\n      }\n      puVar5 = PTR_openfile_0007c6e8;\n      text = (char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      sVar3 = actual_last_column(leftedge,click_col);\n      iVar4 = *(int *)puVar5;\n      sVar3 = actual_x(text,sVar3);\n      *(size_t *)(iVar4 + 0x1c) = sVar3;\n      if ((click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(old_current,CENTERING);\n      iVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return iVar1;\n  }\n  puVar5 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar5 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar5 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar5 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar5 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar5 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "filestruct *old_current;" type_identifier (pointer_declarator "*old_current" * identifier) ;) (declaration "char *text;" primitive_type (pointer_declarator "*text" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int click_row;" primitive_type identifier ;) (declaration "int click_col;" primitive_type identifier ;) (declaration "size_t leftedge;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0007d12c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0007d12c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0007d12c" * (cast_expression "(int *)PTR___stack_chk_guard_0007d12c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar1 = get_mouseinput(&click_row,&click_col,true);" (assignment_expression "iVar1 = get_mouseinput(&click_row,&click_col,true)" identifier = (call_expression "get_mouseinput(&click_row,&click_col,true)" identifier (argument_list "(&click_row,&click_col,true)" ( (pointer_expression "&click_row" & identifier) , (pointer_expression "&click_col" & identifier) , true )))) ;) (if_statement "if (iVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&click_row,&click_col,0);\n    iVar1 = 2;\n    if (iVar2 != 0) {\n      iVar1 = *(int *)PTR_openfile_0007c6e8;\n      old_current = *(filestruct **)(iVar1 + 0x10);\n      iVar2 = *(int *)(iVar1 + 0x24);\n      iVar1 = *(int *)(iVar1 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        sVar3 = xplustabs();\n        leftedge = get_page_start(sVar3);\n      }\n      else {\n        sVar3 = xplustabs();\n        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (click_row - iVar2 < 0) {\n        go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge);\n      }\n      else {\n        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);\n      }\n      puVar5 = PTR_openfile_0007c6e8;\n      text = (char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      sVar3 = actual_last_column(leftedge,click_col);\n      iVar4 = *(int *)puVar5;\n      sVar3 = actual_x(text,sVar3);\n      *(size_t *)(iVar4 + 0x1c) = sVar3;\n      if ((click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(old_current,CENTERING);\n      iVar1 = 2;\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&click_row,&click_col,0);\n    iVar1 = 2;\n    if (iVar2 != 0) {\n      iVar1 = *(int *)PTR_openfile_0007c6e8;\n      old_current = *(filestruct **)(iVar1 + 0x10);\n      iVar2 = *(int *)(iVar1 + 0x24);\n      iVar1 = *(int *)(iVar1 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        sVar3 = xplustabs();\n        leftedge = get_page_start(sVar3);\n      }\n      else {\n        sVar3 = xplustabs();\n        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (click_row - iVar2 < 0) {\n        go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge);\n      }\n      else {\n        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);\n      }\n      puVar5 = PTR_openfile_0007c6e8;\n      text = (char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      sVar3 = actual_last_column(leftedge,click_col);\n      iVar4 = *(int *)puVar5;\n      sVar3 = actual_x(text,sVar3);\n      *(size_t *)(iVar4 + 0x1c) = sVar3;\n      if ((click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(old_current,CENTERING);\n      iVar1 = 2;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&click_row,&click_col,0);" (assignment_expression "iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&click_row,&click_col,0)" identifier = (call_expression "(*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&click_row,&click_col,0)" (parenthesized_expression "(*(code *)PTR_wmouse_trafo_0007cf3c)" ( (pointer_expression "*(code *)PTR_wmouse_trafo_0007cf3c" * (cast_expression "(code *)PTR_wmouse_trafo_0007cf3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_edit_0007c568,&click_row,&click_col,0)" ( (pointer_expression "*(undefined4 *)PTR_edit_0007c568" * (cast_expression "(undefined4 *)PTR_edit_0007c568" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "&click_row" & identifier) , (pointer_expression "&click_col" & identifier) , number_literal )))) ;) (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) {\n      iVar1 = *(int *)PTR_openfile_0007c6e8;\n      old_current = *(filestruct **)(iVar1 + 0x10);\n      iVar2 = *(int *)(iVar1 + 0x24);\n      iVar1 = *(int *)(iVar1 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        sVar3 = xplustabs();\n        leftedge = get_page_start(sVar3);\n      }\n      else {\n        sVar3 = xplustabs();\n        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (click_row - iVar2 < 0) {\n        go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge);\n      }\n      else {\n        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);\n      }\n      puVar5 = PTR_openfile_0007c6e8;\n      text = (char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      sVar3 = actual_last_column(leftedge,click_col);\n      iVar4 = *(int *)puVar5;\n      sVar3 = actual_x(text,sVar3);\n      *(size_t *)(iVar4 + 0x1c) = sVar3;\n      if ((click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(old_current,CENTERING);\n      iVar1 = 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = *(int *)PTR_openfile_0007c6e8;\n      old_current = *(filestruct **)(iVar1 + 0x10);\n      iVar2 = *(int *)(iVar1 + 0x24);\n      iVar1 = *(int *)(iVar1 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        sVar3 = xplustabs();\n        leftedge = get_page_start(sVar3);\n      }\n      else {\n        sVar3 = xplustabs();\n        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (click_row - iVar2 < 0) {\n        go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge);\n      }\n      else {\n        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);\n      }\n      puVar5 = PTR_openfile_0007c6e8;\n      text = (char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      sVar3 = actual_last_column(leftedge,click_col);\n      iVar4 = *(int *)puVar5;\n      sVar3 = actual_x(text,sVar3);\n      *(size_t *)(iVar4 + 0x1c) = sVar3;\n      if ((click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(old_current,CENTERING);\n      iVar1 = 2;\n    }" { (expression_statement "iVar1 = *(int *)PTR_openfile_0007c6e8;" (assignment_expression "iVar1 = *(int *)PTR_openfile_0007c6e8" identifier = (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "old_current = *(filestruct **)(iVar1 + 0x10);" (assignment_expression "old_current = *(filestruct **)(iVar1 + 0x10)" identifier = (pointer_expression "*(filestruct **)(iVar1 + 0x10)" * (cast_expression "(filestruct **)(iVar1 + 0x10)" ( (type_descriptor "filestruct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(iVar1 + 0x24);" (assignment_expression "iVar2 = *(int *)(iVar1 + 0x24)" identifier = (pointer_expression "*(int *)(iVar1 + 0x24)" * (cast_expression "(int *)(iVar1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(iVar1 + 0x1c);" (assignment_expression "iVar1 = *(int *)(iVar1 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1c)" * (cast_expression "(int *)(iVar1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1c)" ( (binary_expression "iVar1 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        sVar3 = xplustabs();\n        leftedge = get_page_start(sVar3);\n      }\n      else {\n        sVar3 = xplustabs();\n        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" if (parenthesized_expression "((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0)" ( (binary_expression "(*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(PTR_flags_0007c584 + 4) & 2)" ( (binary_expression "*(uint *)(PTR_flags_0007c584 + 4) & 2" (pointer_expression "*(uint *)(PTR_flags_0007c584 + 4)" * (cast_expression "(uint *)(PTR_flags_0007c584 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_flags_0007c584 + 4)" ( (binary_expression "PTR_flags_0007c584 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        sVar3 = xplustabs();\n        leftedge = get_page_start(sVar3);\n      }" { (expression_statement "sVar3 = xplustabs();" (assignment_expression "sVar3 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "leftedge = get_page_start(sVar3);" (assignment_expression "leftedge = get_page_start(sVar3)" identifier = (call_expression "get_page_start(sVar3)" identifier (argument_list "(sVar3)" ( identifier )))) ;) }) (else_clause "else {\n        sVar3 = xplustabs();\n        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" else (compound_statement "{\n        sVar3 = xplustabs();\n        leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" { (expression_statement "sVar3 = xplustabs();" (assignment_expression "sVar3 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "leftedge = leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier = (call_expression "leftedge_for(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier (argument_list "(sVar3,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" ( identifier , (pointer_expression "*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" * (cast_expression "(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (type_descriptor "filestruct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) )))) ;) }))) (if_statement "if (click_row - iVar2 < 0) {\n        go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge);\n      }\n      else {\n        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);\n      }" if (parenthesized_expression "(click_row - iVar2 < 0)" ( (binary_expression "click_row - iVar2 < 0" (binary_expression "click_row - iVar2" identifier - identifier) < number_literal) )) (compound_statement "{\n        go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge);\n      }" { (expression_statement "go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge);" (call_expression "go_back_chunks(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge)" identifier (argument_list "(iVar2 - click_row,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                       &leftedge)" ( (binary_expression "iVar2 - click_row" identifier - identifier) , (cast_expression "(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (type_descriptor "filestruct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))) , (pointer_expression "&leftedge" & identifier) ))) ;) }) (else_clause "else {\n        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);\n      }" else (compound_statement "{\n        go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);\n      }" { (expression_statement "go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge);" (call_expression "go_forward_chunks(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge)" identifier (argument_list "(click_row - iVar2,(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                          &leftedge)" ( (binary_expression "click_row - iVar2" identifier - identifier) , (cast_expression "(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (type_descriptor "filestruct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))) , (pointer_expression "&leftedge" & identifier) ))) ;) }))) (expression_statement "puVar5 = PTR_openfile_0007c6e8;" (assignment_expression "puVar5 = PTR_openfile_0007c6e8" identifier = identifier) ;) (expression_statement "text = (char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);" (assignment_expression "text = (char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" identifier = (cast_expression "(char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" * (pointer_expression "*(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" * (cast_expression "(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))))) ;) (expression_statement "sVar3 = actual_last_column(leftedge,click_col);" (assignment_expression "sVar3 = actual_last_column(leftedge,click_col)" identifier = (call_expression "actual_last_column(leftedge,click_col)" identifier (argument_list "(leftedge,click_col)" ( identifier , identifier )))) ;) (expression_statement "iVar4 = *(int *)puVar5;" (assignment_expression "iVar4 = *(int *)puVar5" identifier = (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "sVar3 = actual_x(text,sVar3);" (assignment_expression "sVar3 = actual_x(text,sVar3)" identifier = (call_expression "actual_x(text,sVar3)" identifier (argument_list "(text,sVar3)" ( identifier , identifier )))) ;) (expression_statement "*(size_t *)(iVar4 + 0x1c) = sVar3;" (assignment_expression "*(size_t *)(iVar4 + 0x1c) = sVar3" (pointer_expression "*(size_t *)(iVar4 + 0x1c)" * (cast_expression "(size_t *)(iVar4 + 0x1c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }" if (parenthesized_expression "((click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1))" ( (binary_expression "(click_row == iVar2) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)" (parenthesized_expression "(click_row == iVar2)" ( (binary_expression "click_row == iVar2" identifier == identifier) )) && (parenthesized_expression "(*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1)" ( (binary_expression "*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar1" (pointer_expression "*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" * (cast_expression "(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x1c" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n        do_mark();\n      }" { (expression_statement "do_mark();" (call_expression "do_mark()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        cutbuffer_reset();\n      }" else (compound_statement "{\n        cutbuffer_reset();\n      }" { (expression_statement "cutbuffer_reset();" (call_expression "cutbuffer_reset()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "edit_redraw(old_current,CENTERING);" (call_expression "edit_redraw(old_current,CENTERING)" identifier (argument_list "(old_current,CENTERING)" ( identifier , identifier ))) ;) (expression_statement "iVar1 = 2;" (assignment_expression "iVar1 = 2" identifier = number_literal) ;) })) })) (if_statement "if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return iVar1;\n  }" if (parenthesized_expression "(local_24 == *(int *)PTR___stack_chk_guard_0007d12c)" ( (binary_expression "local_24 == *(int *)PTR___stack_chk_guard_0007d12c" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_0007d12c" * (cast_expression "(int *)PTR___stack_chk_guard_0007d12c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar1;\n  }" { (return_statement "return iVar1;" return identifier ;) })) (expression_statement "puVar5 = PTR___stack_chk_fail_0007d0f8;" (assignment_expression "puVar5 = PTR___stack_chk_fail_0007d0f8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0007d0f8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0007d0f8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0007d0f8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0007d0f8" * (cast_expression "(code *)PTR___stack_chk_fail_0007d0f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (local_24 == *(int *)(puVar5 + 0x49ec8)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x49ec8))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x49ec8)" identifier == (pointer_expression "*(int *)(puVar5 + 0x49ec8)" * (cast_expression "(int *)(puVar5 + 0x49ec8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x49ec8)" ( (binary_expression "puVar5 + 0x49ec8" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x49ecc)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x49ecc))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x49ecc)" identifier == (pointer_expression "*(int *)(puVar5 + 0x49ecc)" * (cast_expression "(int *)(puVar5 + 0x49ecc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x49ecc)" ( (binary_expression "puVar5 + 0x49ecc" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x49ed8)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x49ed8))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x49ed8)" identifier == (pointer_expression "*(int *)(puVar5 + 0x49ed8)" * (cast_expression "(int *)(puVar5 + 0x49ed8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x49ed8)" ( (binary_expression "puVar5 + 0x49ed8" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x49edc)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x49edc))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x49edc)" identifier == (pointer_expression "*(int *)(puVar5 + 0x49edc)" * (cast_expression "(int *)(puVar5 + 0x49edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x49edc)" ( (binary_expression "puVar5 + 0x49edc" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x4a1ac)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x4a1ac))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x4a1ac)" identifier == (pointer_expression "*(int *)(puVar5 + 0x4a1ac)" * (cast_expression "(int *)(puVar5 + 0x4a1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x4a1ac)" ( (binary_expression "puVar5 + 0x4a1ac" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x4a1b0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x4a1b0))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x4a1b0)" identifier == (pointer_expression "*(int *)(puVar5 + 0x4a1b0)" * (cast_expression "(int *)(puVar5 + 0x4a1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x4a1b0)" ( (binary_expression "puVar5 + 0x4a1b0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x49ed0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x49ed0))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x49ed0)" identifier == (pointer_expression "*(int *)(puVar5 + 0x49ed0)" * (cast_expression "(int *)(puVar5 + 0x49ed0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x49ed0)" ( (binary_expression "puVar5 + 0x49ed0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x49ed4)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x49ed4))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x49ed4)" identifier == (pointer_expression "*(int *)(puVar5 + 0x49ed4)" * (cast_expression "(int *)(puVar5 + 0x49ed4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x49ed4)" ( (binary_expression "puVar5 + 0x49ed4" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x4a1bc)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x4a1bc))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x4a1bc)" identifier == (pointer_expression "*(int *)(puVar5 + 0x4a1bc)" * (cast_expression "(int *)(puVar5 + 0x4a1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x4a1bc)" ( (binary_expression "puVar5 + 0x4a1bc" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x4a1c0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x4a1c0))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x4a1c0)" identifier == (pointer_expression "*(int *)(puVar5 + 0x4a1c0)" * (cast_expression "(int *)(puVar5 + 0x4a1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x4a1c0)" ( (binary_expression "puVar5 + 0x4a1c0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x49ee0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x49ee0))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x49ee0)" identifier == (pointer_expression "*(int *)(puVar5 + 0x49ee0)" * (cast_expression "(int *)(puVar5 + 0x49ee0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x49ee0)" ( (binary_expression "puVar5 + 0x49ee0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x49ee4)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x49ee4))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x49ee4)" identifier == (pointer_expression "*(int *)(puVar5 + 0x49ee4)" * (cast_expression "(int *)(puVar5 + 0x49ee4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x49ee4)" ( (binary_expression "puVar5 + 0x49ee4" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar5 + 0x49e58)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar5 + 0x49e58))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x49e58)" identifier == (pointer_expression "*(int *)(puVar5 + 0x49e58)" * (cast_expression "(int *)(puVar5 + 0x49e58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x49e58)" ( (binary_expression "puVar5 + 0x49e58" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 != *(int *)(puVar5 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar5 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar5 + 0x4a1c8));\n    }\n    return 1;\n  }" if (parenthesized_expression "(local_24 != *(int *)(puVar5 + 0x49e38))" ( (binary_expression "local_24 != *(int *)(puVar5 + 0x49e38)" identifier != (pointer_expression "*(int *)(puVar5 + 0x49e38)" * (cast_expression "(int *)(puVar5 + 0x49e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x49e38)" ( (binary_expression "puVar5 + 0x49e38" identifier + number_literal) ))))) )) (compound_statement "{\n    if (local_24 != *(int *)(puVar5 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar5 + 0x4a1c8));\n    }\n    return 1;\n  }" { (if_statement "if (local_24 != *(int *)(puVar5 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar5 + 0x4a1c8));\n    }" if (parenthesized_expression "(local_24 != *(int *)(puVar5 + 0x4a1c4))" ( (binary_expression "local_24 != *(int *)(puVar5 + 0x4a1c4)" identifier != (pointer_expression "*(int *)(puVar5 + 0x4a1c4)" * (cast_expression "(int *)(puVar5 + 0x4a1c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x4a1c4)" ( (binary_expression "puVar5 + 0x4a1c4" identifier + number_literal) ))))) )) (compound_statement "{\n      return (uint)(local_24 == *(int *)(puVar5 + 0x4a1c8));\n    }" { (return_statement "return (uint)(local_24 == *(int *)(puVar5 + 0x4a1c8));" return (call_expression "(uint)(local_24 == *(int *)(puVar5 + 0x4a1c8))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_24 == *(int *)(puVar5 + 0x4a1c8))" ( (binary_expression "local_24 == *(int *)(puVar5 + 0x4a1c8)" identifier == (pointer_expression "*(int *)(puVar5 + 0x4a1c8)" * (cast_expression "(int *)(puVar5 + 0x4a1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 0x4a1c8)" ( (binary_expression "puVar5 + 0x4a1c8" identifier + number_literal) ))))) ))) ;) })) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "uint do_mouse(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar1 = get_mouseinput(&local_30,&local_2c,1);\n  if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }\n  puVar8 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}\n\n" (function_definition "uint do_mouse(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar1 = get_mouseinput(&local_30,&local_2c,1);\n  if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }\n  puVar8 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}" type_identifier (function_declarator "do_mouse(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar1 = get_mouseinput(&local_30,&local_2c,1);\n  if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }\n  puVar8 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0007d12c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0007d12c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0007d12c" * (cast_expression "(int *)PTR___stack_chk_guard_0007d12c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar1 = get_mouseinput(&local_30,&local_2c,1);" (assignment_expression "uVar1 = get_mouseinput(&local_30,&local_2c,1)" identifier = (call_expression "get_mouseinput(&local_30,&local_2c,1)" identifier (argument_list "(&local_30,&local_2c,1)" ( (pointer_expression "&local_30" & identifier) , (pointer_expression "&local_2c" & identifier) , number_literal )))) ;) (if_statement "if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }" if (parenthesized_expression "(uVar1 == 0)" ( (binary_expression "uVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);" (assignment_expression "iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0)" identifier = (call_expression "(*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0)" (parenthesized_expression "(*(code *)PTR_wmouse_trafo_0007cf3c)" ( (pointer_expression "*(code *)PTR_wmouse_trafo_0007cf3c" * (cast_expression "(code *)PTR_wmouse_trafo_0007cf3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0)" ( (pointer_expression "*(undefined4 *)PTR_edit_0007c568" * (cast_expression "(undefined4 *)PTR_edit_0007c568" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "&local_30" & identifier) , (pointer_expression "&local_2c" & identifier) , number_literal )))) ;) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" identifier = number_literal) ;) (if_statement "if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }" { (expression_statement "iVar2 = *(int *)PTR_openfile_0007c6e8;" (assignment_expression "iVar2 = *(int *)PTR_openfile_0007c6e8" identifier = (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar2 + 0x10);" (assignment_expression "uVar6 = *(undefined4 *)(iVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" * (cast_expression "(undefined4 *)(iVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)(iVar2 + 0x24);" (assignment_expression "iVar4 = *(int *)(iVar2 + 0x24)" identifier = (pointer_expression "*(int *)(iVar2 + 0x24)" * (cast_expression "(int *)(iVar2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(iVar2 + 0x1c);" (assignment_expression "iVar2 = *(int *)(iVar2 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar2 + 0x1c)" * (cast_expression "(int *)(iVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1c)" ( (binary_expression "iVar2 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" if (parenthesized_expression "((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0)" ( (binary_expression "(*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(PTR_flags_0007c584 + 4) & 2)" ( (binary_expression "*(uint *)(PTR_flags_0007c584 + 4) & 2" (pointer_expression "*(uint *)(PTR_flags_0007c584 + 4)" * (cast_expression "(uint *)(PTR_flags_0007c584 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_flags_0007c584 + 4)" ( (binary_expression "PTR_flags_0007c584 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }" { (expression_statement "uVar3 = xplustabs();" (assignment_expression "uVar3 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_28 = get_page_start(uVar3);" (assignment_expression "local_28 = get_page_start(uVar3)" identifier = (call_expression "get_page_start(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) }) (else_clause "else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" else (compound_statement "{\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" { (expression_statement "uVar3 = xplustabs();" (assignment_expression "uVar3 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier = (call_expression "leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier (argument_list "(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10)" * (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) )))) ;) }))) (if_statement "if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" if (parenthesized_expression "(local_30 - iVar4 < 0)" ( (binary_expression "local_30 - iVar4 < 0" (binary_expression "local_30 - iVar4" identifier - identifier) < number_literal) )) (compound_statement "{\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" { (expression_statement "go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);" (call_expression "go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" identifier (argument_list "(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" ( (binary_expression "iVar4 - local_30" identifier - identifier) , (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) , (pointer_expression "&local_28" & identifier) ))) ;) }) (else_clause "else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" else (compound_statement "{\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" { (expression_statement "go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);" (call_expression "go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" identifier (argument_list "(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" ( (binary_expression "local_30 - iVar4" identifier - identifier) , (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) , (pointer_expression "&local_28" & identifier) ))) ;) }))) (expression_statement "puVar8 = PTR_openfile_0007c6e8;" (assignment_expression "puVar8 = PTR_openfile_0007c6e8" identifier = identifier) ;) (expression_statement "uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);" (assignment_expression "uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" * (pointer_expression "*(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" * (cast_expression "(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x10)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))))) ;) (expression_statement "uVar3 = actual_last_column(local_28,local_2c);" (assignment_expression "uVar3 = actual_last_column(local_28,local_2c)" identifier = (call_expression "actual_last_column(local_28,local_2c)" identifier (argument_list "(local_28,local_2c)" ( identifier , identifier )))) ;) (expression_statement "iVar5 = *(int *)puVar8;" (assignment_expression "iVar5 = *(int *)puVar8" identifier = (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar3 = actual_x(uVar7,uVar3);" (assignment_expression "uVar3 = actual_x(uVar7,uVar3)" identifier = (call_expression "actual_x(uVar7,uVar3)" identifier (argument_list "(uVar7,uVar3)" ( identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1c) = uVar3;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1c) = uVar3" (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" * (cast_expression "(undefined4 *)(iVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }" if (parenthesized_expression "((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2))" ( (binary_expression "(local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)" (parenthesized_expression "(local_30 == iVar4)" ( (binary_expression "local_30 == iVar4" identifier == identifier) )) && (parenthesized_expression "(*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)" ( (binary_expression "*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2" (pointer_expression "*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" * (cast_expression "(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x1c" (pointer_expression "*(int *)PTR_openfile_0007c6e8" * (cast_expression "(int *)PTR_openfile_0007c6e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n        do_mark();\n      }" { (expression_statement "do_mark();" (call_expression "do_mark()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        cutbuffer_reset();\n      }" else (compound_statement "{\n        cutbuffer_reset();\n      }" { (expression_statement "cutbuffer_reset();" (call_expression "cutbuffer_reset()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "edit_redraw(uVar6,0);" (call_expression "edit_redraw(uVar6,0)" identifier (argument_list "(uVar6,0)" ( identifier , number_literal ))) ;) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" identifier = number_literal) ;) })) })) (if_statement "if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }" if (parenthesized_expression "(local_24 == *(int *)PTR___stack_chk_guard_0007d12c)" ( (binary_expression "local_24 == *(int *)PTR___stack_chk_guard_0007d12c" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_0007d12c" * (cast_expression "(int *)PTR___stack_chk_guard_0007d12c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar1;\n  }" { (return_statement "return uVar1;" return identifier ;) })) (expression_statement "puVar8 = PTR___stack_chk_fail_0007d0f8;" (assignment_expression "puVar8 = PTR___stack_chk_fail_0007d0f8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0007d0f8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0007d0f8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0007d0f8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0007d0f8" * (cast_expression "(code *)PTR___stack_chk_fail_0007d0f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ec8))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ec8)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ec8)" * (cast_expression "(int *)(puVar8 + 0x49ec8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ec8)" ( (binary_expression "puVar8 + 0x49ec8" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ecc))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ecc)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ecc)" * (cast_expression "(int *)(puVar8 + 0x49ecc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ecc)" ( (binary_expression "puVar8 + 0x49ecc" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ed8))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ed8)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ed8)" * (cast_expression "(int *)(puVar8 + 0x49ed8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ed8)" ( (binary_expression "puVar8 + 0x49ed8" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49edc))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49edc)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49edc)" * (cast_expression "(int *)(puVar8 + 0x49edc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49edc)" ( (binary_expression "puVar8 + 0x49edc" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1ac))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1ac)" identifier == (pointer_expression "*(int *)(puVar8 + 0x4a1ac)" * (cast_expression "(int *)(puVar8 + 0x4a1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1ac)" ( (binary_expression "puVar8 + 0x4a1ac" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1b0))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1b0)" identifier == (pointer_expression "*(int *)(puVar8 + 0x4a1b0)" * (cast_expression "(int *)(puVar8 + 0x4a1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1b0)" ( (binary_expression "puVar8 + 0x4a1b0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ed0))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ed0)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ed0)" * (cast_expression "(int *)(puVar8 + 0x49ed0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ed0)" ( (binary_expression "puVar8 + 0x49ed0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ed4))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ed4)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ed4)" * (cast_expression "(int *)(puVar8 + 0x49ed4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ed4)" ( (binary_expression "puVar8 + 0x49ed4" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1bc))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1bc)" identifier == (pointer_expression "*(int *)(puVar8 + 0x4a1bc)" * (cast_expression "(int *)(puVar8 + 0x4a1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1bc)" ( (binary_expression "puVar8 + 0x4a1bc" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1c0))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1c0)" identifier == (pointer_expression "*(int *)(puVar8 + 0x4a1c0)" * (cast_expression "(int *)(puVar8 + 0x4a1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1c0)" ( (binary_expression "puVar8 + 0x4a1c0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ee0))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ee0)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ee0)" * (cast_expression "(int *)(puVar8 + 0x49ee0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ee0)" ( (binary_expression "puVar8 + 0x49ee0" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ee4))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49ee4)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49ee4)" * (cast_expression "(int *)(puVar8 + 0x49ee4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49ee4)" ( (binary_expression "puVar8 + 0x49ee4" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }" if (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49e58))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x49e58)" identifier == (pointer_expression "*(int *)(puVar8 + 0x49e58)" * (cast_expression "(int *)(puVar8 + 0x49e58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49e58)" ( (binary_expression "puVar8 + 0x49e58" identifier + number_literal) ))))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }" if (parenthesized_expression "(local_24 != *(int *)(puVar8 + 0x49e38))" ( (binary_expression "local_24 != *(int *)(puVar8 + 0x49e38)" identifier != (pointer_expression "*(int *)(puVar8 + 0x49e38)" * (cast_expression "(int *)(puVar8 + 0x49e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x49e38)" ( (binary_expression "puVar8 + 0x49e38" identifier + number_literal) ))))) )) (compound_statement "{\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }" { (if_statement "if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }" if (parenthesized_expression "(local_24 != *(int *)(puVar8 + 0x4a1c4))" ( (binary_expression "local_24 != *(int *)(puVar8 + 0x4a1c4)" identifier != (pointer_expression "*(int *)(puVar8 + 0x4a1c4)" * (cast_expression "(int *)(puVar8 + 0x4a1c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1c4)" ( (binary_expression "puVar8 + 0x4a1c4" identifier + number_literal) ))))) )) (compound_statement "{\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }" { (return_statement "return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));" return (call_expression "(uint)(local_24 == *(int *)(puVar8 + 0x4a1c8))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_24 == *(int *)(puVar8 + 0x4a1c8))" ( (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1c8)" identifier == (pointer_expression "*(int *)(puVar8 + 0x4a1c8)" * (cast_expression "(int *)(puVar8 + 0x4a1c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x4a1c8)" ( (binary_expression "puVar8 + 0x4a1c8" identifier + number_literal) ))))) ))) ;) })) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) , (pointer_expression & IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) , (pointer_expression & IDENT) ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) })) (return_statement return LIT ;) })) (return_statement return LIT ;) })))
(function_definition "uint do_mouse(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar1 = get_mouseinput(&local_30,&local_2c,1);\n  if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }\n  puVar8 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}" (type_identifier "uint") (function_declarator "do_mouse(void)" (identifier "do_mouse") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  int local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  int local_24;\n  \n  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar1 = get_mouseinput(&local_30,&local_2c,1);\n  if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }\n  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }\n  puVar8 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }\n  if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }\n  if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }\n  return 1;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0007d12c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0007d12c" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0007d12c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0007d12c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0007d12c")))) (; ";")) (expression_statement "uVar1 = get_mouseinput(&local_30,&local_2c,1);" (assignment_expression "uVar1 = get_mouseinput(&local_30,&local_2c,1)" (identifier "uVar1") (= "=") (call_expression "get_mouseinput(&local_30,&local_2c,1)" (identifier "get_mouseinput") (argument_list "(&local_30,&local_2c,1)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (uVar1 == 0) {\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }" (if "if") (parenthesized_expression "(uVar1 == 0)" (( "(") (binary_expression "uVar1 == 0" (identifier "uVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);\n    uVar1 = 2;\n    if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }\n  }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);" (assignment_expression "iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_wmouse_trafo_0007cf3c)\n                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0)" (parenthesized_expression "(*(code *)PTR_wmouse_trafo_0007cf3c)" (( "(") (pointer_expression "*(code *)PTR_wmouse_trafo_0007cf3c" (* "*") (cast_expression "(code *)PTR_wmouse_trafo_0007cf3c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_wmouse_trafo_0007cf3c"))) () ")")) (argument_list "(*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0)" (( "(") (pointer_expression "*(undefined4 *)PTR_edit_0007c568" (* "*") (cast_expression "(undefined4 *)PTR_edit_0007c568" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_edit_0007c568"))) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" (identifier "uVar1") (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar2 != 0) {\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = *(int *)PTR_openfile_0007c6e8;\n      uVar6 = *(undefined4 *)(iVar2 + 0x10);\n      iVar4 = *(int *)(iVar2 + 0x24);\n      iVar2 = *(int *)(iVar2 + 0x1c);\n      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }\n      if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      puVar8 = PTR_openfile_0007c6e8;\n      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n      uVar3 = actual_last_column(local_28,local_2c);\n      iVar5 = *(int *)puVar8;\n      uVar3 = actual_x(uVar7,uVar3);\n      *(undefined4 *)(iVar5 + 0x1c) = uVar3;\n      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }\n      edit_redraw(uVar6,0);\n      uVar1 = 2;\n    }" ({ "{") (expression_statement "iVar2 = *(int *)PTR_openfile_0007c6e8;" (assignment_expression "iVar2 = *(int *)PTR_openfile_0007c6e8" (identifier "iVar2") (= "=") (pointer_expression "*(int *)PTR_openfile_0007c6e8" (* "*") (cast_expression "(int *)PTR_openfile_0007c6e8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_openfile_0007c6e8")))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(iVar2 + 0x10);" (assignment_expression "uVar6 = *(undefined4 *)(iVar2 + 0x10)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar2 + 0x24);" (assignment_expression "iVar4 = *(int *)(iVar2 + 0x24)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar2 + 0x24)" (* "*") (cast_expression "(int *)(iVar2 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x24)" (( "(") (binary_expression "iVar2 + 0x24" (identifier "iVar2") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(iVar2 + 0x1c);" (assignment_expression "iVar2 = *(int *)(iVar2 + 0x1c)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar2 + 0x1c)" (* "*") (cast_expression "(int *)(iVar2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1c)" (( "(") (binary_expression "iVar2 + 0x1c" (identifier "iVar2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }\n      else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" (if "if") (parenthesized_expression "((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0)" (( "(") (binary_expression "(*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(PTR_flags_0007c584 + 4) & 2)" (( "(") (binary_expression "*(uint *)(PTR_flags_0007c584 + 4) & 2" (pointer_expression "*(uint *)(PTR_flags_0007c584 + 4)" (* "*") (cast_expression "(uint *)(PTR_flags_0007c584 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_flags_0007c584 + 4)" (( "(") (binary_expression "PTR_flags_0007c584 + 4" (identifier "PTR_flags_0007c584") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar3 = xplustabs();\n        local_28 = get_page_start(uVar3);\n      }" ({ "{") (expression_statement "uVar3 = xplustabs();" (assignment_expression "uVar3 = xplustabs()" (identifier "uVar3") (= "=") (call_expression "xplustabs()" (identifier "xplustabs") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_28 = get_page_start(uVar3);" (assignment_expression "local_28 = get_page_start(uVar3)" (identifier "local_28") (= "=") (call_expression "get_page_start(uVar3)" (identifier "get_page_start") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" (else "else") (compound_statement "{\n        uVar3 = xplustabs();\n        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n      }" ({ "{") (expression_statement "uVar3 = xplustabs();" (assignment_expression "uVar3 = xplustabs()" (identifier "uVar3") (= "=") (call_expression "xplustabs()" (identifier "xplustabs") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" (identifier "local_28") (= "=") (call_expression "leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" (identifier "leftedge_for") (argument_list "(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" (( "(") (identifier "uVar3") (, ",") (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10)" (* "*") (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x10)" (( "(") (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" (* "*") (cast_expression "(int *)PTR_openfile_0007c6e8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_openfile_0007c6e8"))) (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (} "}")))) (if_statement "if (local_30 - iVar4 < 0) {\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }\n      else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" (if "if") (parenthesized_expression "(local_30 - iVar4 < 0)" (( "(") (binary_expression "local_30 - iVar4 < 0" (binary_expression "local_30 - iVar4" (identifier "local_30") (- "-") (identifier "iVar4")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" ({ "{") (expression_statement "go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);" (call_expression "go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" (identifier "go_back_chunks") (argument_list "(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" (( "(") (binary_expression "iVar4 - local_30" (identifier "iVar4") (- "-") (identifier "local_30")) (, ",") (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" (* "*") (cast_expression "(int *)PTR_openfile_0007c6e8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_openfile_0007c6e8"))) (+ "+") (number_literal "0x10")) (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" (else "else") (compound_statement "{\n        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);\n      }" ({ "{") (expression_statement "go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);" (call_expression "go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" (identifier "go_forward_chunks") (argument_list "(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28)" (( "(") (binary_expression "local_30 - iVar4" (identifier "local_30") (- "-") (identifier "iVar4")) (, ",") (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" (* "*") (cast_expression "(int *)PTR_openfile_0007c6e8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_openfile_0007c6e8"))) (+ "+") (number_literal "0x10")) (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")"))) (; ";")) (} "}")))) (expression_statement "puVar8 = PTR_openfile_0007c6e8;" (assignment_expression "puVar8 = PTR_openfile_0007c6e8" (identifier "puVar8") (= "=") (identifier "PTR_openfile_0007c6e8")) (; ";")) (expression_statement "uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);" (assignment_expression "uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" (identifier "uVar7") (= "=") (pointer_expression "**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" (* "*") (cast_expression "(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x10)" (( "(") (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x10" (pointer_expression "*(int *)PTR_openfile_0007c6e8" (* "*") (cast_expression "(int *)PTR_openfile_0007c6e8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_openfile_0007c6e8"))) (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "uVar3 = actual_last_column(local_28,local_2c);" (assignment_expression "uVar3 = actual_last_column(local_28,local_2c)" (identifier "uVar3") (= "=") (call_expression "actual_last_column(local_28,local_2c)" (identifier "actual_last_column") (argument_list "(local_28,local_2c)" (( "(") (identifier "local_28") (, ",") (identifier "local_2c") () ")")))) (; ";")) (expression_statement "iVar5 = *(int *)puVar8;" (assignment_expression "iVar5 = *(int *)puVar8" (identifier "iVar5") (= "=") (pointer_expression "*(int *)puVar8" (* "*") (cast_expression "(int *)puVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8")))) (; ";")) (expression_statement "uVar3 = actual_x(uVar7,uVar3);" (assignment_expression "uVar3 = actual_x(uVar7,uVar3)" (identifier "uVar3") (= "=") (call_expression "actual_x(uVar7,uVar3)" (identifier "actual_x") (argument_list "(uVar7,uVar3)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x1c) = uVar3;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1c) = uVar3" (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (if_statement "if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {\n        do_mark();\n      }\n      else {\n        cutbuffer_reset();\n      }" (if "if") (parenthesized_expression "((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2))" (( "(") (binary_expression "(local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)" (parenthesized_expression "(local_30 == iVar4)" (( "(") (binary_expression "local_30 == iVar4" (identifier "local_30") (== "==") (identifier "iVar4")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)" (( "(") (binary_expression "*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2" (pointer_expression "*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x1c)" (( "(") (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x1c" (pointer_expression "*(int *)PTR_openfile_0007c6e8" (* "*") (cast_expression "(int *)PTR_openfile_0007c6e8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_openfile_0007c6e8"))) (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (identifier "iVar2")) () ")"))) () ")")) (compound_statement "{\n        do_mark();\n      }" ({ "{") (expression_statement "do_mark();" (call_expression "do_mark()" (identifier "do_mark") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        cutbuffer_reset();\n      }" (else "else") (compound_statement "{\n        cutbuffer_reset();\n      }" ({ "{") (expression_statement "cutbuffer_reset();" (call_expression "cutbuffer_reset()" (identifier "cutbuffer_reset") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "edit_redraw(uVar6,0);" (call_expression "edit_redraw(uVar6,0)" (identifier "edit_redraw") (argument_list "(uVar6,0)" (( "(") (identifier "uVar6") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar1 = 2;" (assignment_expression "uVar1 = 2" (identifier "uVar1") (= "=") (number_literal "2")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return uVar1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)PTR___stack_chk_guard_0007d12c)" (( "(") (binary_expression "local_24 == *(int *)PTR___stack_chk_guard_0007d12c" (identifier "local_24") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_0007d12c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0007d12c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0007d12c")))) () ")")) (compound_statement "{\n    return uVar1;\n  }" ({ "{") (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}"))) (expression_statement "puVar8 = PTR___stack_chk_fail_0007d0f8;" (assignment_expression "puVar8 = PTR___stack_chk_fail_0007d0f8" (identifier "puVar8") (= "=") (identifier "PTR___stack_chk_fail_0007d0f8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0007d0f8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0007d0f8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0007d0f8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0007d0f8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0007d0f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0007d0f8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ec8)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ec8))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x49ec8)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x49ec8)" (* "*") (cast_expression "(int *)(puVar8 + 0x49ec8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x49ec8)" (( "(") (binary_expression "puVar8 + 0x49ec8" (identifier "puVar8") (+ "+") (number_literal "0x49ec8")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ecc)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ecc))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x49ecc)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x49ecc)" (* "*") (cast_expression "(int *)(puVar8 + 0x49ecc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x49ecc)" (( "(") (binary_expression "puVar8 + 0x49ecc" (identifier "puVar8") (+ "+") (number_literal "0x49ecc")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ed8)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ed8))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x49ed8)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x49ed8)" (* "*") (cast_expression "(int *)(puVar8 + 0x49ed8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x49ed8)" (( "(") (binary_expression "puVar8 + 0x49ed8" (identifier "puVar8") (+ "+") (number_literal "0x49ed8")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49edc)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49edc))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x49edc)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x49edc)" (* "*") (cast_expression "(int *)(puVar8 + 0x49edc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x49edc)" (( "(") (binary_expression "puVar8 + 0x49edc" (identifier "puVar8") (+ "+") (number_literal "0x49edc")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1ac))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1ac)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x4a1ac)" (* "*") (cast_expression "(int *)(puVar8 + 0x4a1ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x4a1ac)" (( "(") (binary_expression "puVar8 + 0x4a1ac" (identifier "puVar8") (+ "+") (number_literal "0x4a1ac")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1b0))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1b0)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x4a1b0)" (* "*") (cast_expression "(int *)(puVar8 + 0x4a1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x4a1b0)" (( "(") (binary_expression "puVar8 + 0x4a1b0" (identifier "puVar8") (+ "+") (number_literal "0x4a1b0")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ed0)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ed0))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x49ed0)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x49ed0)" (* "*") (cast_expression "(int *)(puVar8 + 0x49ed0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x49ed0)" (( "(") (binary_expression "puVar8 + 0x49ed0" (identifier "puVar8") (+ "+") (number_literal "0x49ed0")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ed4)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ed4))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x49ed4)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x49ed4)" (* "*") (cast_expression "(int *)(puVar8 + 0x49ed4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x49ed4)" (( "(") (binary_expression "puVar8 + 0x49ed4" (identifier "puVar8") (+ "+") (number_literal "0x49ed4")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1bc))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1bc)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x4a1bc)" (* "*") (cast_expression "(int *)(puVar8 + 0x4a1bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x4a1bc)" (( "(") (binary_expression "puVar8 + 0x4a1bc" (identifier "puVar8") (+ "+") (number_literal "0x4a1bc")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x4a1c0))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1c0)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x4a1c0)" (* "*") (cast_expression "(int *)(puVar8 + 0x4a1c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x4a1c0)" (( "(") (binary_expression "puVar8 + 0x4a1c0" (identifier "puVar8") (+ "+") (number_literal "0x4a1c0")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ee0)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ee0))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x49ee0)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x49ee0)" (* "*") (cast_expression "(int *)(puVar8 + 0x49ee0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x49ee0)" (( "(") (binary_expression "puVar8 + 0x49ee0" (identifier "puVar8") (+ "+") (number_literal "0x49ee0")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49ee4)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49ee4))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x49ee4)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x49ee4)" (* "*") (cast_expression "(int *)(puVar8 + 0x49ee4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x49ee4)" (( "(") (binary_expression "puVar8 + 0x49ee4" (identifier "puVar8") (+ "+") (number_literal "0x49ee4")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 == *(int *)(puVar8 + 0x49e58)) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(puVar8 + 0x49e58))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x49e58)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x49e58)" (* "*") (cast_expression "(int *)(puVar8 + 0x49e58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x49e58)" (( "(") (binary_expression "puVar8 + 0x49e58" (identifier "puVar8") (+ "+") (number_literal "0x49e58")) () ")"))))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_24 != *(int *)(puVar8 + 0x49e38)) {\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_24 != *(int *)(puVar8 + 0x49e38))" (( "(") (binary_expression "local_24 != *(int *)(puVar8 + 0x49e38)" (identifier "local_24") (!= "!=") (pointer_expression "*(int *)(puVar8 + 0x49e38)" (* "*") (cast_expression "(int *)(puVar8 + 0x49e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x49e38)" (( "(") (binary_expression "puVar8 + 0x49e38" (identifier "puVar8") (+ "+") (number_literal "0x49e38")) () ")"))))) () ")")) (compound_statement "{\n    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }\n    return 1;\n  }" ({ "{") (if_statement "if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }" (if "if") (parenthesized_expression "(local_24 != *(int *)(puVar8 + 0x4a1c4))" (( "(") (binary_expression "local_24 != *(int *)(puVar8 + 0x4a1c4)" (identifier "local_24") (!= "!=") (pointer_expression "*(int *)(puVar8 + 0x4a1c4)" (* "*") (cast_expression "(int *)(puVar8 + 0x4a1c4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x4a1c4)" (( "(") (binary_expression "puVar8 + 0x4a1c4" (identifier "puVar8") (+ "+") (number_literal "0x4a1c4")) () ")"))))) () ")")) (compound_statement "{\n      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));\n    }" ({ "{") (return_statement "return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));" (return "return") (call_expression "(uint)(local_24 == *(int *)(puVar8 + 0x4a1c8))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_24 == *(int *)(puVar8 + 0x4a1c8))" (( "(") (binary_expression "local_24 == *(int *)(puVar8 + 0x4a1c8)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(puVar8 + 0x4a1c8)" (* "*") (cast_expression "(int *)(puVar8 + 0x4a1c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 0x4a1c8)" (( "(") (binary_expression "puVar8 + 0x4a1c8" (identifier "puVar8") (+ "+") (number_literal "0x4a1c8")) () ")"))))) () ")"))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

int function_1(void)

{
  int var_2;
  int var_3;
  size_t sVar3;
  int var_13;
  type_1 *old_current;
  char *text;
  type_2 *var_18;
  int var_8;
  int click_col;
  size_t leftedge;
  int var_17;
  
  var_17 = *(int *)PTR___stack_chk_guard_0007d12c;
  var_2 = var_1(&var_8,&click_col,true);
  if (var_2 == 0) {
    var_3 = (*(type_3 *)PTR_wmouse_trafo_0007cf3c)
                      (*(type_4 *)PTR_edit_0007c568,&var_8,&click_col,0);
    var_2 = 2;
    if (var_3 != 0) {
      var_2 = *(int *)PTR_openfile_0007c6e8;
      old_current = *(type_1 **)(var_2 + 0x10);
      var_3 = *(int *)(var_2 + 0x24);
      var_2 = *(int *)(var_2 + 0x1c);
      if ((*(type_5 *)(var_4 + 4) & 2) == 0) {
        sVar3 = var_5();
        leftedge = var_6(sVar3);
      }
      else {
        sVar3 = var_5();
        leftedge = var_7(sVar3,*(type_1 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));
      }
      if (var_8 - var_3 < 0) {
        var_9(var_3 - var_8,(type_1 **)(*(int *)PTR_openfile_0007c6e8 + 0x10),
                       &leftedge);
      }
      else {
        var_10(var_8 - var_3,(type_1 **)(*(int *)PTR_openfile_0007c6e8 + 0x10),
                          &leftedge);
      }
      var_18 = PTR_openfile_0007c6e8;
      text = (char *)**(type_4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);
      sVar3 = var_11(leftedge,click_col);
      var_13 = *(int *)var_18;
      sVar3 = var_12(text,sVar3);
      *(size_t *)(var_13 + 0x1c) = sVar3;
      if ((var_8 == var_3) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == var_2)) {
        var_14();
      }
      else {
        var_15();
      }
      var_16(old_current,CENTERING);
      var_2 = 2;
    }
  }
  if (var_17 == *(int *)PTR___stack_chk_guard_0007d12c) {
    return var_2;
  }
  var_18 = PTR___stack_chk_fail_0007d0f8;
  (*(type_3 *)PTR___stack_chk_fail_0007d0f8)();
  if (var_17 == *(int *)(var_18 + 0x49ec8)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x49ecc)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x49ed8)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x49edc)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x4a1ac)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x4a1b0)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x49ed0)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x49ed4)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x4a1bc)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x4a1c0)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x49ee0)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x49ee4)) {
    return 1;
  }
  if (var_17 == *(int *)(var_18 + 0x49e58)) {
    return 1;
  }
  if (var_17 != *(int *)(var_18 + 0x49e38)) {
    if (var_17 != *(int *)(var_18 + 0x4a1c4)) {
      return (type_5)(var_17 == *(int *)(var_18 + 0x4a1c8));
    }
    return 1;
  }
  return 1;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))))))))) (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 (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) (pointer_expression argument: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (identifier))))) 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 (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (return_statement (number_literal)))) (return_statement (number_literal)))))

uint MASKED(void)

{
  uint uVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined *puVar8;
  int local_30;
  undefined4 local_2c;
  undefined4 local_28;
  int local_24;
  
  local_24 = *(int *)PTR___stack_chk_guard_0007d12c;
  uVar1 = get_mouseinput(&local_30,&local_2c,1);
  if (uVar1 == 0) {
    iVar2 = (*(code *)PTR_wmouse_trafo_0007cf3c)
                      (*(undefined4 *)PTR_edit_0007c568,&local_30,&local_2c,0);
    uVar1 = 2;
    if (iVar2 != 0) {
      iVar2 = *(int *)PTR_openfile_0007c6e8;
      uVar6 = *(undefined4 *)(iVar2 + 0x10);
      iVar4 = *(int *)(iVar2 + 0x24);
      iVar2 = *(int *)(iVar2 + 0x1c);
      if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {
        uVar3 = xplustabs();
        local_28 = get_page_start(uVar3);
      }
      else {
        uVar3 = xplustabs();
        local_28 = leftedge_for(uVar3,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));
      }
      if (local_30 - iVar4 < 0) {
        go_back_chunks(iVar4 - local_30,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);
      }
      else {
        go_forward_chunks(local_30 - iVar4,*(int *)PTR_openfile_0007c6e8 + 0x10,&local_28);
      }
      puVar8 = PTR_openfile_0007c6e8;
      uVar7 = **(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10);
      uVar3 = actual_last_column(local_28,local_2c);
      iVar5 = *(int *)puVar8;
      uVar3 = actual_x(uVar7,uVar3);
      *(undefined4 *)(iVar5 + 0x1c) = uVar3;
      if ((local_30 == iVar4) && (*(int *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) == iVar2)) {
        do_mark();
      }
      else {
        cutbuffer_reset();
      }
      edit_redraw(uVar6,0);
      uVar1 = 2;
    }
  }
  if (local_24 == *(int *)PTR___stack_chk_guard_0007d12c) {
    return uVar1;
  }
  puVar8 = PTR___stack_chk_fail_0007d0f8;
  (*(code *)PTR___stack_chk_fail_0007d0f8)();
  if (local_24 == *(int *)(puVar8 + 0x49ec8)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ecc)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ed8)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49edc)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x4a1ac)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x4a1b0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ed0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ed4)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x4a1bc)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x4a1c0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ee0)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49ee4)) {
    return 1;
  }
  if (local_24 == *(int *)(puVar8 + 0x49e58)) {
    return 1;
  }
  if (local_24 != *(int *)(puVar8 + 0x49e38)) {
    if (local_24 != *(int *)(puVar8 + 0x4a1c4)) {
      return (uint)(local_24 == *(int *)(puVar8 + 0x4a1c8));
    }
    return 1;
  }
  return 1;
}

