
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void do_home(void)

{
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  size_t sVar1;
  size_t sVar2;
  _Bool _Var4;
  size_t sVar3;
  char *pcVar5;
  uint uVar6;
  int *piVar7;
  int iVar8;
  filestruct *line;
  int *piVar9;
  undefined4 uVar10;
  undefined *puVar11;
  undefined4 uVar12;
  undefined *puVar13;
  code *pcVar14;
  code *pcVar15;
  size_t sStackY_cc;
  size_t sStackY_c8;
  int iStackY_c4;
  size_t *psStackY_c0;
  int *piStackY_bc;
  undefined4 uStackY_b8;
  code *pcStackY_b4;
  code *pcStackY_a0;
  size_t sStackY_94;
  size_t sStackY_90;
  int iStackY_8c;
  size_t sStackY_88;
  filestruct *pfStackY_84;
  size_t sStackY_80;
  code *pcStackY_7c;
  undefined *puStackY_68;
  _Bool _StackY_5d;
  int iStackY_5c;
  size_t sStackY_58;
  size_t sStackY_54;
  undefined4 uStackY_50;
  undefined *puStackY_4c;
  size_t leftedge;
  int local_1c;
  
  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;
  uVar10 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);
  sVar1 = xplustabs();
  puVar11 = PTR_openfile_0007c6e8;
  leftedge = 0;
  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {
    uVar6 = 0;
    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;
LAB_0002de94:
    puVar11 = PTR_openfile_0007c6e8;
    sVar2 = indent_length((char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));
    iVar8 = *(int *)puVar11;
    if (*(char *)(**(int **)(iVar8 + 0x10) + sVar2) == '\0') goto LAB_0002de5c;
    if (*(size_t *)(iVar8 + 0x1c) == sVar2) {
      *(undefined4 *)(iVar8 + 0x1c) = 0;
    }
    else {
      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)) goto LAB_0002de70;
      *(size_t *)(iVar8 + 0x1c) = sVar2;
    }
LAB_0002dd78:
    uVar6 = *(uint *)PTR_openfile_0007c6e8;
    sVar2 = xplustabs();
    *(size_t *)(uVar6 + 0x20) = sVar2;
    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;
    (*(code *)PTR_edit_redraw_0007ca58)(uVar10,1);
  }
  else {
    leftedge = leftedge_for(sVar1,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));
    uVar6 = proper_x(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)
    ;
    puVar11 = PTR_openfile_0007c6e8;
    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;
LAB_0002de5c:
    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {
LAB_0002dd70:
      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;
      goto LAB_0002dd78;
    }
LAB_0002de70:
    iVar8 = *(int *)PTR_openfile_0007c6e8;
    if (*(size_t *)(iVar8 + 0x1c) == uVar6) {
      *(undefined4 *)(iVar8 + 0x1c) = 0;
      goto LAB_0002dd78;
    }
    *(uint *)(iVar8 + 0x1c) = uVar6;
    *(size_t *)(iVar8 + 0x20) = leftedge;
LAB_0002dda8:
    _Var4 = line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20));
    if (CONCAT31(extraout_var,_Var4) != 0) {
      (*(code *)PTR_update_line_0007ca78)
                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),
                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));
    }
  }
  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {
    return;
  }
  puVar13 = PTR___stack_chk_fail_0007d0f8;
  (*(code *)PTR___stack_chk_fail_0007d0f8)();
  puStackY_68 = puVar13 + 0x565cc;
  iStackY_5c = **(int **)(puVar13 + 0x4f1d8);
  piVar7 = *(int **)(puVar13 + 0x4e794);
  uVar12 = *(undefined4 *)(*piVar7 + 0x10);
  sStackY_58 = uVar6;
  sStackY_54 = sVar1;
  uStackY_50 = uVar10;
  puStackY_4c = puVar11;
  sVar1 = xplustabs();
  iVar8 = *piVar7;
  line = *(filestruct **)(iVar8 + 0x10);
  uVar10 = (**(code **)(puStackY_68 + -0x74f0))(line->data);
  if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) == 0) {
    *(undefined4 *)(iVar8 + 0x1c) = uVar10;
LAB_0002dfe4:
    sVar2 = **(size_t **)(puStackY_68 + -0x7e38);
    sVar3 = xplustabs();
    *(size_t *)(sVar2 + 0x20) = sVar3;
    if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) != 0) {
      (**(code **)(puStackY_68 + -0x7ac8))(uVar12,1);
      goto LAB_0002e03c;
    }
  }
  else {
    _StackY_5d = false;
    sVar2 = leftedge_for(sVar1,line);
    sVar2 = get_softwrap_breakpoint
                      ((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,
                       &_StackY_5d);
    line = *(filestruct **)(puStackY_68 + -0x7e38);
    if (_StackY_5d == false) {
      sVar2 = sVar2 - 1;
    }
    sVar3 = actual_x((char *)**(undefined4 **)(line->data + 0x10),sVar2);
    pcVar5 = line->data;
    if (*(size_t *)(pcVar5 + 0x1c) == sVar3) {
      *(undefined4 *)(pcVar5 + 0x1c) = uVar10;
      goto LAB_0002dfe4;
    }
    *(size_t *)(pcVar5 + 0x1c) = sVar3;
    *(size_t *)(pcVar5 + 0x20) = sVar2;
  }
  _Var4 = line_needs_update(sVar1,*(size_t *)(**(int **)(puStackY_68 + -0x7e38) + 0x20));
  if (CONCAT31(extraout_var_00,_Var4) != 0) {
    (**(code **)(puStackY_68 + -0x7aa8))
              (*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10),
               *(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c));
  }
LAB_0002e03c:
  if (iStackY_5c == **(int **)(puStackY_68 + -0x73f4)) {
    return;
  }
  pcVar14 = *(code **)(puStackY_68 + -0x7428);
  pcVar15 = do_up;
  (*pcVar14)();
  pcStackY_a0 = pcVar14 + 0x563d0;
  iStackY_8c = **(int **)(pcVar14 + 0x4efdc);
  piVar7 = *(int **)(pcVar14 + 0x4e598);
  uVar10 = *(undefined4 *)(*piVar7 + 0x10);
  sStackY_88 = sVar2;
  pfStackY_84 = line;
  sStackY_80 = sVar1;
  pcStackY_7c = pcVar15;
  get_edge_and_target(&sStackY_94,&sStackY_90);
  iVar8 = go_back_chunks(1,(filestruct **)(*piVar7 + 0x10),&sStackY_94);
  if (iVar8 < 1) {
    set_proper_index_and_pww(&sStackY_94,sStackY_90,false);
    if ((*(int *)(*piVar7 + 0x24) == 0) && ((**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0)) {
      (**(code **)(pcStackY_a0 + -0x7aa0))(0);
      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);
    }
    else {
      (**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1);
      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);
    }
    *(size_t *)(*piVar9 + 0x20) = sStackY_94 + sStackY_90;
  }
  if (iStackY_8c != **(int **)(pcStackY_a0 + -0x73f4)) {
    pcVar14 = *(code **)(pcStackY_a0 + -0x7428);
    pcVar15 = do_down;
    (*pcVar14)();
    iStackY_c4 = **(int **)(pcVar14 + 0x4eea4);
    piVar9 = *(int **)(pcVar14 + 0x4e460);
    uVar12 = *(undefined4 *)(*piVar9 + 0x10);
    psStackY_c0 = &sStackY_94;
    piStackY_bc = piVar7;
    uStackY_b8 = uVar10;
    pcStackY_b4 = pcVar15;
    get_edge_and_target(&sStackY_cc,&sStackY_c8);
    iVar8 = go_forward_chunks(1,(filestruct **)(*piVar9 + 0x10),&sStackY_cc);
    if (iVar8 < 1) {
      set_proper_index_and_pww(&sStackY_cc,sStackY_c8,true);
      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&
         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {
        (**(code **)(pcVar14 + 0x4e7f8))(1);
        piVar7 = *(int **)(pcVar14 + 0x4e460);
      }
      else {
        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);
        piVar7 = *(int **)(pcVar14 + 0x4e460);
      }
      *(size_t *)(*piVar7 + 0x20) = sStackY_cc + sStackY_c8;
    }
    if (iStackY_c4 != **(int **)(pcVar14 + 0x4eea4)) {
      pcVar14 = *(code **)(pcVar14 + 0x4ee70);
      (*pcVar14)();
      iVar8 = **(int **)(pcVar14 + 0x4e31c);
      piVar7 = *(int **)(pcVar14 + 0x4e1a0);
      if ((*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||
         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)) {
        if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {
          do_up();
          piVar7 = *(int **)(pcVar14 + 0x4e1a0);
        }
        else {
          piVar7 = *(int **)(pcVar14 + 0x4e1a0);
        }
        if (1 < *piVar7) {
          (**(code **)(pcVar14 + 0x4e6b4))(0);
        }
      }
      return;
    }
    return;
  }
  return;
}



void do_home(void)

{
  undefined4 uVar1;
  undefined4 uVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  undefined4 uVar6;
  int iVar7;
  uint uVar8;
  int *piVar9;
  int *piVar10;
  undefined4 uVar11;
  undefined *puVar12;
  undefined *puVar13;
  code *pcVar14;
  code *pcVar15;
  int iStack_cc;
  int iStack_c8;
  int iStack_c4;
  int *piStack_c0;
  int *piStack_bc;
  undefined4 uStack_b8;
  code *pcStack_b4;
  code *pcStack_a0;
  int iStack_94;
  int iStack_90;
  int iStack_8c;
  int iStack_88;
  int *piStack_84;
  undefined4 uStack_80;
  code *pcStack_7c;
  undefined *puStack_68;
  char cStack_5d;
  int iStack_5c;
  uint uStack_58;
  undefined4 uStack_54;
  undefined4 uStack_50;
  undefined *puStack_4c;
  undefined4 local_20;
  int local_1c;
  
  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;
  uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);
  uVar1 = xplustabs();
  puVar12 = PTR_openfile_0007c6e8;
  local_20 = 0;
  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {
    uVar8 = 0;
    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;
LAB_0002de94:
    puVar12 = PTR_openfile_0007c6e8;
    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));
    iVar3 = *(int *)puVar12;
    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;
    if (*(uint *)(iVar3 + 0x1c) == uVar4) {
      *(undefined4 *)(iVar3 + 0x1c) = 0;
    }
    else {
      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;
      *(uint *)(iVar3 + 0x1c) = uVar4;
    }
LAB_0002dd78:
    uVar8 = *(uint *)PTR_openfile_0007c6e8;
    uVar2 = xplustabs();
    *(undefined4 *)(uVar8 + 0x20) = uVar2;
    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;
    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);
  }
  else {
    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));
    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);
    puVar12 = PTR_openfile_0007c6e8;
    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;
LAB_0002de5c:
    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {
LAB_0002dd70:
      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;
      goto LAB_0002dd78;
    }
LAB_0002de70:
    iVar3 = *(int *)PTR_openfile_0007c6e8;
    if (*(uint *)(iVar3 + 0x1c) == uVar8) {
      *(undefined4 *)(iVar3 + 0x1c) = 0;
      goto LAB_0002dd78;
    }
    *(uint *)(iVar3 + 0x1c) = uVar8;
    *(undefined4 *)(iVar3 + 0x20) = local_20;
LAB_0002dda8:
    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));
    if (iVar3 != 0) {
      (*(code *)PTR_update_line_0007ca78)
                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),
                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));
    }
  }
  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {
    return;
  }
  puVar13 = PTR___stack_chk_fail_0007d0f8;
  (*(code *)PTR___stack_chk_fail_0007d0f8)();
  puStack_68 = puVar13 + 0x565cc;
  iStack_5c = **(int **)(puVar13 + 0x4f1d8);
  piVar9 = *(int **)(puVar13 + 0x4e794);
  uVar2 = *(undefined4 *)(*piVar9 + 0x10);
  uStack_58 = uVar8;
  uStack_54 = uVar1;
  uStack_50 = uVar11;
  puStack_4c = puVar12;
  uVar1 = xplustabs();
  iVar3 = *piVar9;
  piVar9 = *(int **)(iVar3 + 0x10);
  uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);
  if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {
    *(undefined4 *)(iVar3 + 0x1c) = uVar11;
LAB_0002dfe4:
    iVar3 = **(int **)(puStack_68 + -0x7e38);
    uVar11 = xplustabs();
    *(undefined4 *)(iVar3 + 0x20) = uVar11;
    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {
      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);
      goto LAB_0002e03c;
    }
  }
  else {
    cStack_5d = '\0';
    uVar6 = leftedge_for(uVar1,piVar9);
    iVar3 = get_softwrap_breakpoint
                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);
    piVar9 = *(int **)(puStack_68 + -0x7e38);
    if (cStack_5d == '\0') {
      iVar3 = iVar3 + -1;
    }
    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);
    iVar7 = *piVar9;
    if (*(int *)(iVar7 + 0x1c) == iVar5) {
      *(undefined4 *)(iVar7 + 0x1c) = uVar11;
      goto LAB_0002dfe4;
    }
    *(int *)(iVar7 + 0x1c) = iVar5;
    *(int *)(iVar7 + 0x20) = iVar3;
  }
  iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));
  if (iVar5 != 0) {
    (**(code **)(puStack_68 + -0x7aa8))
              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),
               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));
  }
LAB_0002e03c:
  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {
    return;
  }
  pcVar14 = *(code **)(puStack_68 + -0x7428);
  pcVar15 = do_up;
  (*pcVar14)();
  pcStack_a0 = pcVar14 + 0x563d0;
  iStack_8c = **(int **)(pcVar14 + 0x4efdc);
  piVar10 = *(int **)(pcVar14 + 0x4e598);
  uVar11 = *(undefined4 *)(*piVar10 + 0x10);
  iStack_88 = iVar3;
  piStack_84 = piVar9;
  uStack_80 = uVar1;
  pcStack_7c = pcVar15;
  get_edge_and_target(&iStack_94,&iStack_90);
  iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);
  if (iVar3 < 1) {
    set_proper_index_and_pww(&iStack_94,iStack_90,0);
    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {
      (**(code **)(pcStack_a0 + -0x7aa0))(0);
      piVar9 = *(int **)(pcStack_a0 + -0x7e38);
    }
    else {
      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);
      piVar9 = *(int **)(pcStack_a0 + -0x7e38);
    }
    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;
  }
  if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {
    pcVar14 = *(code **)(pcStack_a0 + -0x7428);
    pcVar15 = do_down;
    (*pcVar14)();
    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);
    piVar9 = *(int **)(pcVar14 + 0x4e460);
    uVar1 = *(undefined4 *)(*piVar9 + 0x10);
    piStack_c0 = &iStack_94;
    piStack_bc = piVar10;
    uStack_b8 = uVar11;
    pcStack_b4 = pcVar15;
    get_edge_and_target(&iStack_cc,&iStack_c8);
    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);
    if (iVar3 < 1) {
      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);
      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&
         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {
        (**(code **)(pcVar14 + 0x4e7f8))(1);
        piVar9 = *(int **)(pcVar14 + 0x4e460);
      }
      else {
        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);
        piVar9 = *(int **)(pcVar14 + 0x4e460);
      }
      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;
    }
    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {
      pcVar14 = *(code **)(pcVar14 + 0x4ee70);
      (*pcVar14)();
      iVar3 = **(int **)(pcVar14 + 0x4e31c);
      piVar9 = *(int **)(pcVar14 + 0x4e1a0);
      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||
         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {
        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {
          do_up();
          piVar9 = *(int **)(pcVar14 + 0x4e1a0);
        }
        else {
          piVar9 = *(int **)(pcVar14 + 0x4e1a0);
        }
        if (1 < *piVar9) {
          (**(code **)(pcVar14 + 0x4e6b4))(0);
        }
      }
      return;
    }
    return;
  }
  return;
}


lui gp,0x5
addiu gp,gp,0x6830
addu gp,gp,t9
addiu sp,sp,-0x40
sw ra,0x3c(sp)
sw s3,0x38(sp)
sw s2,0x34(sp)
sw s1,0x30(sp)
sw s0,0x2c(sp)
sw gp,0x18(sp)
lw v0,-0x73f4(gp)
lw v0,0x0(v0)
sw v0,0x24(sp)
lw v0,-0x7e38(gp)
lw v0,0x0(v0)
lw s2,0x10(v0)
lw t9,-0x7dfc(gp)
bal 0x00046a60
_nop
lw gp,0x18(sp)
or s1,v0,zero
sw zero,0x20(sp)
lw v0,-0x7f9c(gp)
lw s0,0x4(v0)
andi s0,s0,0x2
bne s0,zero,0x0002ddfc
_or a0,s1,zero
lw v0,0x0(v0)
ext v0,v0,0x18,0x1
bne v0,zero,0x0002de94
_lw s3,-0x7e38(gp)
lw v0,-0x7e38(gp)
lw v0,0x0(v0)
sw zero,0x1c(v0)
lw v0,-0x7e38(gp)
lw s0,0x0(v0)
lw t9,-0x7dfc(gp)
bal 0x00046a60
_nop
lw gp,0x18(sp)
sw v0,0x20(s0)
lw v0,-0x7f9c(gp)
lw v0,0x4(v0)
andi v0,v0,0x2
bne v0,zero,0x0002df08
_li a1,0x1
lw v0,-0x7e38(gp)
lw v0,0x0(v0)
lw a1,0x20(v0)
or a0,s1,zero
lw t9,-0x7ab0(gp)
bal 0x0004ba34
_nop
lw gp,0x18(sp)
bne v0,zero,0x0002df24
_lw v0,-0x7e38(gp)
lw v1,0x24(sp)
lw v0,-0x73f4(gp)
lw v0,0x0(v0)
bne v1,v0,0x0002df48
_lw ra,0x3c(sp)
lw s3,0x38(sp)
lw s2,0x34(sp)
lw s1,0x30(sp)
lw s0,0x2c(sp)
jr ra
_addiu sp,sp,0x40
lw s0,-0x7e38(gp)
lw v0,0x0(s0)
lw a1,0x10(v0)
lw t9,-0x7dc4(gp)
bal 0x0004bfd4
_nop
lw gp,0x18(sp)
sw v0,0x20(sp)
lw v1,0x0(s0)
lw a0,0x10(v1)
sw zero,0x10(sp)
or a3,v0,zero
or a2,zero,zero
addiu a1,sp,0x20
lw t9,-0x7aec(gp)
bal 0x0002cf64
_nop
lw gp,0x18(sp)
or s0,v0,zero
lw v0,-0x7f9c(gp)
lw v0,0x0(v0)
ext v0,v0,0x18,0x1
bne v0,zero,0x0002de94
_lw s3,-0x7e38(gp)
lw v0,-0x7f9c(gp)
lw v0,0x4(v0)
andi v0,v0,0x2
beq v0,zero,0x0002dd70
_lw v0,-0x7e38(gp)
lw v0,-0x7e38(gp)
lw v0,0x0(v0)
lw v1,0x1c(v0)
beq v1,s0,0x0002df00
_nop
sw s0,0x1c(v0)
lw v1,0x20(sp)
b 0x0002dda8
_sw v1,0x20(v0)
lw v0,0x0(s3)
lw v0,0x10(v0)
lw a0,0x0(v0)
lw t9,-0x7aac(gp)
bal 0x00040e8c
_nop
lw gp,0x18(sp)
lw a0,0x0(s3)
lw v1,0x10(a0)
lw v1,0x0(v1)
addu v1,v1,v0
lb v1,0x0(v1)
beq v1,zero,0x0002de5c
_nop
lw v1,0x1c(a0)
beq v1,v0,0x0002def8
_lw v1,-0x7f9c(gp)
lw v1,0x4(v1)
andi v1,v1,0x2
beq v1,zero,0x0002def0
_sltu v1,v0,s0
bne v1,zero,0x0002de70
_nop
b 0x0002dd78
_sw v0,0x1c(a0)
b 0x0002dd78
_sw zero,0x1c(a0)
b 0x0002dd78
_sw zero,0x1c(v0)
or a0,s2,zero
lw t9,-0x7ac8(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x0002ddd0
_nop
lw v0,0x0(v0)
lw a1,0x1c(v0)
lw a0,0x10(v0)
lw t9,-0x7aa8(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x0002ddd0
_nop
lw t9,-0x7428(gp)
jalr t9
_nop
(translation_unit "void do_home(void)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int iStack_cc;\n  int iStack_c8;\n  int iStack_c4;\n  int *piStack_c0;\n  int *piStack_bc;\n  undefined4 uStack_b8;\n  code *pcStack_b4;\n  code *pcStack_a0;\n  int iStack_94;\n  int iStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  undefined4 uStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  char cStack_5d;\n  int iStack_5c;\n  uint uStack_58;\n  undefined4 uStack_54;\n  undefined4 uStack_50;\n  undefined *puStack_4c;\n  undefined4 local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  uVar1 = xplustabs();\n  puVar12 = PTR_openfile_0007c6e8;\n  local_20 = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStack_68 = puVar13 + 0x565cc;\n  iStack_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar9 = *(int **)(puVar13 + 0x4e794);\n  uVar2 = *(undefined4 *)(*piVar9 + 0x10);\n  uStack_58 = uVar8;\n  uStack_54 = uVar1;\n  uStack_50 = uVar11;\n  puStack_4c = puVar12;\n  uVar1 = xplustabs();\n  iVar3 = *piVar9;\n  piVar9 = *(int **)(iVar3 + 0x10);\n  uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);\n  if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }\n  iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));\n  if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStack_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStack_a0 = pcVar14 + 0x563d0;\n  iStack_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar10 = *(int **)(pcVar14 + 0x4e598);\n  uVar11 = *(undefined4 *)(*piVar10 + 0x10);\n  iStack_88 = iVar3;\n  piStack_84 = piVar9;\n  uStack_80 = uVar1;\n  pcStack_7c = pcVar15;\n  get_edge_and_target(&iStack_94,&iStack_90);\n  iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);\n  if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }\n  if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void do_home(void)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int iStack_cc;\n  int iStack_c8;\n  int iStack_c4;\n  int *piStack_c0;\n  int *piStack_bc;\n  undefined4 uStack_b8;\n  code *pcStack_b4;\n  code *pcStack_a0;\n  int iStack_94;\n  int iStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  undefined4 uStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  char cStack_5d;\n  int iStack_5c;\n  uint uStack_58;\n  undefined4 uStack_54;\n  undefined4 uStack_50;\n  undefined *puStack_4c;\n  undefined4 local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  uVar1 = xplustabs();\n  puVar12 = PTR_openfile_0007c6e8;\n  local_20 = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStack_68 = puVar13 + 0x565cc;\n  iStack_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar9 = *(int **)(puVar13 + 0x4e794);\n  uVar2 = *(undefined4 *)(*piVar9 + 0x10);\n  uStack_58 = uVar8;\n  uStack_54 = uVar1;\n  uStack_50 = uVar11;\n  puStack_4c = puVar12;\n  uVar1 = xplustabs();\n  iVar3 = *piVar9;\n  piVar9 = *(int **)(iVar3 + 0x10);\n  uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);\n  if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }\n  iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));\n  if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStack_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStack_a0 = pcVar14 + 0x563d0;\n  iStack_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar10 = *(int **)(pcVar14 + 0x4e598);\n  uVar11 = *(undefined4 *)(*piVar10 + 0x10);\n  iStack_88 = iVar3;\n  piStack_84 = piVar9;\n  uStack_80 = uVar1;\n  pcStack_7c = pcVar15;\n  get_edge_and_target(&iStack_94,&iStack_90);\n  iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);\n  if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }\n  if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "do_home(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int iStack_cc;\n  int iStack_c8;\n  int iStack_c4;\n  int *piStack_c0;\n  int *piStack_bc;\n  undefined4 uStack_b8;\n  code *pcStack_b4;\n  code *pcStack_a0;\n  int iStack_94;\n  int iStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  undefined4 uStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  char cStack_5d;\n  int iStack_5c;\n  uint uStack_58;\n  undefined4 uStack_54;\n  undefined4 uStack_50;\n  undefined *puStack_4c;\n  undefined4 local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  uVar1 = xplustabs();\n  puVar12 = PTR_openfile_0007c6e8;\n  local_20 = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStack_68 = puVar13 + 0x565cc;\n  iStack_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar9 = *(int **)(puVar13 + 0x4e794);\n  uVar2 = *(undefined4 *)(*piVar9 + 0x10);\n  uStack_58 = uVar8;\n  uStack_54 = uVar1;\n  uStack_50 = uVar11;\n  puStack_4c = puVar12;\n  uVar1 = xplustabs();\n  iVar3 = *piVar9;\n  piVar9 = *(int **)(iVar3 + 0x10);\n  uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);\n  if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }\n  iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));\n  if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStack_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStack_a0 = pcVar14 + 0x563d0;\n  iStack_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar10 = *(int **)(pcVar14 + 0x4e598);\n  uVar11 = *(undefined4 *)(*piVar10 + 0x10);\n  iStack_88 = iVar3;\n  piStack_84 = piVar9;\n  uStack_80 = uVar1;\n  pcStack_7c = pcVar15;\n  get_edge_and_target(&iStack_94,&iStack_90);\n  iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);\n  if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }\n  if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "int *piStack_c0;" primitive_type (pointer_declarator "*piStack_c0" * identifier) ;) (declaration "int *piStack_bc;" primitive_type (pointer_declarator "*piStack_bc" * identifier) ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "code *pcStack_b4;" type_identifier (pointer_declarator "*pcStack_b4" * identifier) ;) (declaration "code *pcStack_a0;" type_identifier (pointer_declarator "*pcStack_a0" * identifier) ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "int iStack_88;" primitive_type identifier ;) (declaration "int *piStack_84;" primitive_type (pointer_declarator "*piStack_84" * identifier) ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "code *pcStack_7c;" type_identifier (pointer_declarator "*pcStack_7c" * identifier) ;) (declaration "undefined *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "char cStack_5d;" primitive_type identifier ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "uint uStack_58;" type_identifier identifier ;) (declaration "undefined4 uStack_54;" type_identifier identifier ;) (declaration "undefined4 uStack_50;" type_identifier identifier ;) (declaration "undefined *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_0007d12c;" (assignment_expression "local_1c = *(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 "uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);" (assignment_expression "uVar11 = *(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) ))))) ;) (expression_statement "uVar1 = xplustabs();" (assignment_expression "uVar1 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar12 = PTR_openfile_0007c6e8;" (assignment_expression "puVar12 = PTR_openfile_0007c6e8" identifier = identifier) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\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    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;" if (parenthesized_expression "(-1 < *(int *)PTR_flags_0007c584 << 7)" ( (binary_expression "-1 < *(int *)PTR_flags_0007c584 << 7" number_literal < (binary_expression "*(int *)PTR_flags_0007c584 << 7" (pointer_expression "*(int *)PTR_flags_0007c584" * (cast_expression "(int *)PTR_flags_0007c584" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )) (goto_statement "goto LAB_0002dd70;" goto statement_identifier ;)) (labeled_statement "LAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;" statement_identifier : (expression_statement "puVar12 = PTR_openfile_0007c6e8;" (assignment_expression "puVar12 = PTR_openfile_0007c6e8" identifier = identifier) ;)) (expression_statement "uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier = (call_expression "indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier (argument_list "(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" ( (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 "iVar3 = *(int *)puVar12;" (assignment_expression "iVar3 = *(int *)puVar12" identifier = (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;" if (parenthesized_expression "(*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0')" ( (binary_expression "*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0'" (pointer_expression "*(char *)(**(int **)(iVar3 + 0x10) + uVar4)" * (cast_expression "(char *)(**(int **)(iVar3 + 0x10) + uVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar3 + 0x10) + uVar4)" ( (binary_expression "**(int **)(iVar3 + 0x10) + uVar4" (pointer_expression "**(int **)(iVar3 + 0x10)" * (pointer_expression "*(int **)(iVar3 + 0x10)" * (cast_expression "(int **)(iVar3 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002de5c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }" if (parenthesized_expression "(*(uint *)(iVar3 + 0x1c) == uVar4)" ( (binary_expression "*(uint *)(iVar3 + 0x1c) == uVar4" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }" { (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }" else (compound_statement "{\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }" { (if_statement "if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;" if (parenthesized_expression "(((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8))" ( (binary_expression "((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)" (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) )) && (parenthesized_expression "(uVar4 < uVar8)" ( (binary_expression "uVar4 < uVar8" identifier < identifier) ))) )) (goto_statement "goto LAB_0002de70;" goto statement_identifier ;)) (expression_statement "*(uint *)(iVar3 + 0x1c) = uVar4;" (assignment_expression "*(uint *)(iVar3 + 0x1c) = uVar4" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = identifier) ;) }))) (labeled_statement "LAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;" statement_identifier : (expression_statement "uVar8 = *(uint *)PTR_openfile_0007c6e8;" (assignment_expression "uVar8 = *(uint *)PTR_openfile_0007c6e8" identifier = (pointer_expression "*(uint *)PTR_openfile_0007c6e8" * (cast_expression "(uint *)PTR_openfile_0007c6e8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "uVar2 = xplustabs();" (assignment_expression "uVar2 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(uVar8 + 0x20) = uVar2;" (assignment_expression "*(undefined4 *)(uVar8 + 0x20) = uVar2" (pointer_expression "*(undefined4 *)(uVar8 + 0x20)" * (cast_expression "(undefined4 *)(uVar8 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x20)" ( (binary_expression "uVar8 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;" 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) )) (goto_statement "goto LAB_0002dda8;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);" (call_expression "(*(code *)PTR_edit_redraw_0007ca58)(uVar11,1)" (parenthesized_expression "(*(code *)PTR_edit_redraw_0007ca58)" ( (pointer_expression "*(code *)PTR_edit_redraw_0007ca58" * (cast_expression "(code *)PTR_edit_redraw_0007ca58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,1)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }" else (compound_statement "{\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }" { (expression_statement "local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier = (call_expression "leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier (argument_list "(uVar1,*(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) )))) )))) ;) (expression_statement "uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);" (assignment_expression "uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20)" identifier = (call_expression "proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20)" identifier (argument_list "(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20)" ( (pointer_expression "*(undefined4 *)(*(int *)puVar12 + 0x10)" * (cast_expression "(undefined4 *)(*(int *)puVar12 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar12 + 0x10)" ( (binary_expression "*(int *)puVar12 + 0x10" (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) , (pointer_expression "&local_20" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar12 = PTR_openfile_0007c6e8;" (assignment_expression "puVar12 = PTR_openfile_0007c6e8" identifier = identifier) ;) (if_statement "if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;" if (parenthesized_expression "(*(int *)PTR_flags_0007c584 << 7 < 0)" ( (binary_expression "*(int *)PTR_flags_0007c584 << 7 < 0" (binary_expression "*(int *)PTR_flags_0007c584 << 7" (pointer_expression "*(int *)PTR_flags_0007c584" * (cast_expression "(int *)PTR_flags_0007c584" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) < number_literal) )) (goto_statement "goto LAB_0002de94;" goto statement_identifier ;)) (labeled_statement "LAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" statement_identifier : (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\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 "{\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" { (labeled_statement "LAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" * (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) = number_literal) ;)) (goto_statement "goto LAB_0002dd78;" goto statement_identifier ;) }))) (labeled_statement "LAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;" statement_identifier : (expression_statement "iVar3 = *(int *)PTR_openfile_0007c6e8;" (assignment_expression "iVar3 = *(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))) ;)) (if_statement "if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" if (parenthesized_expression "(*(uint *)(iVar3 + 0x1c) == uVar8)" ( (binary_expression "*(uint *)(iVar3 + 0x1c) == uVar8" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" { (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002dd78;" goto statement_identifier ;) })) (expression_statement "*(uint *)(iVar3 + 0x1c) = uVar8;" (assignment_expression "*(uint *)(iVar3 + 0x1c) = uVar8" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x20) = local_20;" (assignment_expression "*(undefined4 *)(iVar3 + 0x20) = local_20" (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));" statement_identifier : (expression_statement "iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));" (assignment_expression "iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" identifier = (call_expression "line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" identifier (argument_list "(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20)" * (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x20)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x20" (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 (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }" { (expression_statement "(*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));" (call_expression "(*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c))" (parenthesized_expression "(*(code *)PTR_update_line_0007ca78)" ( (pointer_expression "*(code *)PTR_update_line_0007ca78" * (cast_expression "(code *)PTR_update_line_0007ca78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c))" ( (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) )))) , (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" * (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) ))) ;) })) }))) (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_0007d12c)" ( (binary_expression "local_1c == *(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;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar13 = PTR___stack_chk_fail_0007d0f8;" (assignment_expression "puVar13 = 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 "()" ( ))) ;) (expression_statement "puStack_68 = puVar13 + 0x565cc;" (assignment_expression "puStack_68 = puVar13 + 0x565cc" identifier = (binary_expression "puVar13 + 0x565cc" identifier + number_literal)) ;) (expression_statement "iStack_5c = **(int **)(puVar13 + 0x4f1d8);" (assignment_expression "iStack_5c = **(int **)(puVar13 + 0x4f1d8)" identifier = (pointer_expression "**(int **)(puVar13 + 0x4f1d8)" * (pointer_expression "*(int **)(puVar13 + 0x4f1d8)" * (cast_expression "(int **)(puVar13 + 0x4f1d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x4f1d8)" ( (binary_expression "puVar13 + 0x4f1d8" identifier + number_literal) )))))) ;) (expression_statement "piVar9 = *(int **)(puVar13 + 0x4e794);" (assignment_expression "piVar9 = *(int **)(puVar13 + 0x4e794)" identifier = (pointer_expression "*(int **)(puVar13 + 0x4e794)" * (cast_expression "(int **)(puVar13 + 0x4e794)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x4e794)" ( (binary_expression "puVar13 + 0x4e794" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined4 *)(*piVar9 + 0x10);" (assignment_expression "uVar2 = *(undefined4 *)(*piVar9 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(*piVar9 + 0x10)" * (cast_expression "(undefined4 *)(*piVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x10)" ( (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) ;) (expression_statement "uStack_58 = uVar8;" (assignment_expression "uStack_58 = uVar8" identifier = identifier) ;) (expression_statement "uStack_54 = uVar1;" (assignment_expression "uStack_54 = uVar1" identifier = identifier) ;) (expression_statement "uStack_50 = uVar11;" (assignment_expression "uStack_50 = uVar11" identifier = identifier) ;) (expression_statement "puStack_4c = puVar12;" (assignment_expression "puStack_4c = puVar12" identifier = identifier) ;) (expression_statement "uVar1 = xplustabs();" (assignment_expression "uVar1 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = *piVar9;" (assignment_expression "iVar3 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "piVar9 = *(int **)(iVar3 + 0x10);" (assignment_expression "piVar9 = *(int **)(iVar3 + 0x10)" identifier = (pointer_expression "*(int **)(iVar3 + 0x10)" * (cast_expression "(int **)(iVar3 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);" (assignment_expression "uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9)" identifier = (call_expression "(**(code **)(puStack_68 + -0x74f0))(*piVar9)" (parenthesized_expression "(**(code **)(puStack_68 + -0x74f0))" ( (pointer_expression "**(code **)(puStack_68 + -0x74f0)" * (pointer_expression "*(code **)(puStack_68 + -0x74f0)" * (cast_expression "(code **)(puStack_68 + -0x74f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x74f0)" ( (binary_expression "puStack_68 + -0x74f0" identifier + number_literal) ))))) )) (argument_list "(*piVar9)" ( (pointer_expression "*piVar9" * identifier) )))) ;) (if_statement "if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }" if (parenthesized_expression "((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0)" ( (binary_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2)" ( (binary_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2" (pointer_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" * (cast_expression "(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_68 + -0x7f9c) + 4)" ( (binary_expression "*(int *)(puStack_68 + -0x7f9c) + 4" (pointer_expression "*(int *)(puStack_68 + -0x7f9c)" * (cast_expression "(int *)(puStack_68 + -0x7f9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_68 + -0x7f9c)" ( (binary_expression "puStack_68 + -0x7f9c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }" { (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = uVar11;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = uVar11" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);" statement_identifier : (expression_statement "iVar3 = **(int **)(puStack_68 + -0x7e38);" (assignment_expression "iVar3 = **(int **)(puStack_68 + -0x7e38)" identifier = (pointer_expression "**(int **)(puStack_68 + -0x7e38)" * (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) )))))) ;)) (expression_statement "uVar11 = xplustabs();" (assignment_expression "uVar11 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x20) = uVar11;" (assignment_expression "*(undefined4 *)(iVar3 + 0x20) = uVar11" (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }" if (parenthesized_expression "((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2)" ( (binary_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2" (pointer_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" * (cast_expression "(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_68 + -0x7f9c) + 4)" ( (binary_expression "*(int *)(puStack_68 + -0x7f9c) + 4" (pointer_expression "*(int *)(puStack_68 + -0x7f9c)" * (cast_expression "(int *)(puStack_68 + -0x7f9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_68 + -0x7f9c)" ( (binary_expression "puStack_68 + -0x7f9c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }" { (expression_statement "(**(code **)(puStack_68 + -0x7ac8))(uVar2,1);" (call_expression "(**(code **)(puStack_68 + -0x7ac8))(uVar2,1)" (parenthesized_expression "(**(code **)(puStack_68 + -0x7ac8))" ( (pointer_expression "**(code **)(puStack_68 + -0x7ac8)" * (pointer_expression "*(code **)(puStack_68 + -0x7ac8)" * (cast_expression "(code **)(puStack_68 + -0x7ac8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7ac8)" ( (binary_expression "puStack_68 + -0x7ac8" identifier + number_literal) ))))) )) (argument_list "(uVar2,1)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_0002e03c;" goto statement_identifier ;) })) }) (else_clause "else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }" else (compound_statement "{\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }" { (expression_statement "cStack_5d = '\0';" (assignment_expression "cStack_5d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar6 = leftedge_for(uVar1,piVar9);" (assignment_expression "uVar6 = leftedge_for(uVar1,piVar9)" identifier = (call_expression "leftedge_for(uVar1,piVar9)" identifier (argument_list "(uVar1,piVar9)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);" (assignment_expression "iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d)" identifier = (call_expression "get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d)" identifier (argument_list "(**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d)" ( (pointer_expression "**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10)" * (pointer_expression "*(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10)" * (cast_expression "(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x10)" ( (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x10" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" * (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) ))))) , identifier , (pointer_expression "&cStack_5d" & identifier) )))) ;) (expression_statement "piVar9 = *(int **)(puStack_68 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(puStack_68 + -0x7e38)" identifier = (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) ))))) ;) (if_statement "if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }" if (parenthesized_expression "(cStack_5d == '\0')" ( (binary_expression "cStack_5d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar3 = iVar3 + -1;\n    }" { (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);" (assignment_expression "iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3)" identifier = (call_expression "actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3)" identifier (argument_list "(**(undefined4 **)(*piVar9 + 0x10),iVar3)" ( (pointer_expression "**(undefined4 **)(*piVar9 + 0x10)" * (pointer_expression "*(undefined4 **)(*piVar9 + 0x10)" * (cast_expression "(undefined4 **)(*piVar9 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 0x10)" ( (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) , identifier )))) ;) (expression_statement "iVar7 = *piVar9;" (assignment_expression "iVar7 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x1c) == iVar5)" ( (binary_expression "*(int *)(iVar7 + 0x1c) == iVar5" (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }" { (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" * (cast_expression "(undefined4 *)(iVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002dfe4;" goto statement_identifier ;) })) (expression_statement "*(int *)(iVar7 + 0x1c) = iVar5;" (assignment_expression "*(int *)(iVar7 + 0x1c) = iVar5" (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar7 + 0x20) = iVar3;" (assignment_expression "*(int *)(iVar7 + 0x20) = iVar3" (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));" (assignment_expression "iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20))" identifier = (call_expression "line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20))" identifier (argument_list "(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20))" ( identifier , (pointer_expression "*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20)" * (cast_expression "(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x20)" ( (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x20" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" * (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) )))) )))) ;) (if_statement "if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }" { (expression_statement "(**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));" (call_expression "(**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c))" (parenthesized_expression "(**(code **)(puStack_68 + -0x7aa8))" ( (pointer_expression "**(code **)(puStack_68 + -0x7aa8)" * (pointer_expression "*(code **)(puStack_68 + -0x7aa8)" * (cast_expression "(code **)(puStack_68 + -0x7aa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7aa8)" ( (binary_expression "puStack_68 + -0x7aa8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c))" ( (pointer_expression "*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10)" * (cast_expression "(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x10)" ( (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x10" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" * (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c)" * (cast_expression "(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x1c)" ( (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x1c" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" * (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) )))) ))) ;) })) (labeled_statement "LAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }" statement_identifier : (if_statement "if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }" if (parenthesized_expression "(iStack_5c == **(int **)(puStack_68 + -0x73f4))" ( (binary_expression "iStack_5c == **(int **)(puStack_68 + -0x73f4)" identifier == (pointer_expression "**(int **)(puStack_68 + -0x73f4)" * (pointer_expression "*(int **)(puStack_68 + -0x73f4)" * (cast_expression "(int **)(puStack_68 + -0x73f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x73f4)" ( (binary_expression "puStack_68 + -0x73f4" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar14 = *(code **)(puStack_68 + -0x7428);" (assignment_expression "pcVar14 = *(code **)(puStack_68 + -0x7428)" identifier = (pointer_expression "*(code **)(puStack_68 + -0x7428)" * (cast_expression "(code **)(puStack_68 + -0x7428)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7428)" ( (binary_expression "puStack_68 + -0x7428" identifier + number_literal) ))))) ;) (expression_statement "pcVar15 = do_up;" (assignment_expression "pcVar15 = do_up" identifier = identifier) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_a0 = pcVar14 + 0x563d0;" (assignment_expression "pcStack_a0 = pcVar14 + 0x563d0" identifier = (binary_expression "pcVar14 + 0x563d0" identifier + number_literal)) ;) (expression_statement "iStack_8c = **(int **)(pcVar14 + 0x4efdc);" (assignment_expression "iStack_8c = **(int **)(pcVar14 + 0x4efdc)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x4efdc)" * (pointer_expression "*(int **)(pcVar14 + 0x4efdc)" * (cast_expression "(int **)(pcVar14 + 0x4efdc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4efdc)" ( (binary_expression "pcVar14 + 0x4efdc" identifier + number_literal) )))))) ;) (expression_statement "piVar10 = *(int **)(pcVar14 + 0x4e598);" (assignment_expression "piVar10 = *(int **)(pcVar14 + 0x4e598)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e598)" * (cast_expression "(int **)(pcVar14 + 0x4e598)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e598)" ( (binary_expression "pcVar14 + 0x4e598" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(*piVar10 + 0x10);" (assignment_expression "uVar11 = *(undefined4 *)(*piVar10 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(*piVar10 + 0x10)" * (cast_expression "(undefined4 *)(*piVar10 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar10 + 0x10)" ( (binary_expression "*piVar10 + 0x10" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "iStack_88 = iVar3;" (assignment_expression "iStack_88 = iVar3" identifier = identifier) ;) (expression_statement "piStack_84 = piVar9;" (assignment_expression "piStack_84 = piVar9" identifier = identifier) ;) (expression_statement "uStack_80 = uVar1;" (assignment_expression "uStack_80 = uVar1" identifier = identifier) ;) (expression_statement "pcStack_7c = pcVar15;" (assignment_expression "pcStack_7c = pcVar15" identifier = identifier) ;) (expression_statement "get_edge_and_target(&iStack_94,&iStack_90);" (call_expression "get_edge_and_target(&iStack_94,&iStack_90)" identifier (argument_list "(&iStack_94,&iStack_90)" ( (pointer_expression "&iStack_94" & identifier) , (pointer_expression "&iStack_90" & identifier) ))) ;) (expression_statement "iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);" (assignment_expression "iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94)" identifier = (call_expression "go_back_chunks(1,*piVar10 + 0x10,&iStack_94)" identifier (argument_list "(1,*piVar10 + 0x10,&iStack_94)" ( number_literal , (binary_expression "*piVar10 + 0x10" (pointer_expression "*piVar10" * identifier) + number_literal) , (pointer_expression "&iStack_94" & identifier) )))) ;) (if_statement "if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }" if (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) (compound_statement "{\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }" { (expression_statement "set_proper_index_and_pww(&iStack_94,iStack_90,0);" (call_expression "set_proper_index_and_pww(&iStack_94,iStack_90,0)" identifier (argument_list "(&iStack_94,iStack_90,0)" ( (pointer_expression "&iStack_94" & identifier) , identifier , number_literal ))) ;) (if_statement "if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" if (parenthesized_expression "((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0))" ( (binary_expression "(*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)" (parenthesized_expression "(*(int *)(*piVar10 + 0x24) == 0)" ( (binary_expression "*(int *)(*piVar10 + 0x24) == 0" (pointer_expression "*(int *)(*piVar10 + 0x24)" * (cast_expression "(int *)(*piVar10 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar10 + 0x24)" ( (binary_expression "*piVar10 + 0x24" (pointer_expression "*piVar10" * identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)" ( (binary_expression "(**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0" (parenthesized_expression "(**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000)" ( (binary_expression "**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000" (pointer_expression "**(uint **)(pcStack_a0 + -0x7f9c)" * (pointer_expression "*(uint **)(pcStack_a0 + -0x7f9c)" * (cast_expression "(uint **)(pcStack_a0 + -0x7f9c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7f9c)" ( (binary_expression "pcStack_a0 + -0x7f9c" identifier + number_literal) ))))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" { (expression_statement "(**(code **)(pcStack_a0 + -0x7aa0))(0);" (call_expression "(**(code **)(pcStack_a0 + -0x7aa0))(0)" (parenthesized_expression "(**(code **)(pcStack_a0 + -0x7aa0))" ( (pointer_expression "**(code **)(pcStack_a0 + -0x7aa0)" * (pointer_expression "*(code **)(pcStack_a0 + -0x7aa0)" * (cast_expression "(code **)(pcStack_a0 + -0x7aa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7aa0)" ( (binary_expression "pcStack_a0 + -0x7aa0" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "piVar9 = *(int **)(pcStack_a0 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(pcStack_a0 + -0x7e38)" identifier = (pointer_expression "*(int **)(pcStack_a0 + -0x7e38)" * (cast_expression "(int **)(pcStack_a0 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7e38)" ( (binary_expression "pcStack_a0 + -0x7e38" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" else (compound_statement "{\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" { (expression_statement "(**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);" (call_expression "(**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1)" (parenthesized_expression "(**(code **)(pcStack_a0 + -0x7ac8))" ( (pointer_expression "**(code **)(pcStack_a0 + -0x7ac8)" * (pointer_expression "*(code **)(pcStack_a0 + -0x7ac8)" * (cast_expression "(code **)(pcStack_a0 + -0x7ac8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7ac8)" ( (binary_expression "pcStack_a0 + -0x7ac8" identifier + number_literal) ))))) )) (argument_list "(uVar11,1)" ( identifier , number_literal ))) ;) (expression_statement "piVar9 = *(int **)(pcStack_a0 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(pcStack_a0 + -0x7e38)" identifier = (pointer_expression "*(int **)(pcStack_a0 + -0x7e38)" * (cast_expression "(int **)(pcStack_a0 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7e38)" ( (binary_expression "pcStack_a0 + -0x7e38" identifier + number_literal) ))))) ;) }))) (expression_statement "*(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;" (assignment_expression "*(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90" (pointer_expression "*(int *)(*piVar9 + 0x20)" * (cast_expression "(int *)(*piVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x20)" ( (binary_expression "*piVar9 + 0x20" (pointer_expression "*piVar9" * identifier) + number_literal) )))) = (binary_expression "iStack_94 + iStack_90" identifier + identifier)) ;) })) (if_statement "if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "(iStack_8c != **(int **)(pcStack_a0 + -0x73f4))" ( (binary_expression "iStack_8c != **(int **)(pcStack_a0 + -0x73f4)" identifier != (pointer_expression "**(int **)(pcStack_a0 + -0x73f4)" * (pointer_expression "*(int **)(pcStack_a0 + -0x73f4)" * (cast_expression "(int **)(pcStack_a0 + -0x73f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x73f4)" ( (binary_expression "pcStack_a0 + -0x73f4" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }" { (expression_statement "pcVar14 = *(code **)(pcStack_a0 + -0x7428);" (assignment_expression "pcVar14 = *(code **)(pcStack_a0 + -0x7428)" identifier = (pointer_expression "*(code **)(pcStack_a0 + -0x7428)" * (cast_expression "(code **)(pcStack_a0 + -0x7428)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7428)" ( (binary_expression "pcStack_a0 + -0x7428" identifier + number_literal) ))))) ;) (expression_statement "pcVar15 = do_down;" (assignment_expression "pcVar15 = do_down" identifier = identifier) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_c4 = **(int **)(pcVar14 + 0x4eea4);" (assignment_expression "iStack_c4 = **(int **)(pcVar14 + 0x4eea4)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x4eea4)" * (pointer_expression "*(int **)(pcVar14 + 0x4eea4)" * (cast_expression "(int **)(pcVar14 + 0x4eea4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4eea4)" ( (binary_expression "pcVar14 + 0x4eea4" identifier + number_literal) )))))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e460)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e460)" * (cast_expression "(int **)(pcVar14 + 0x4e460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e460)" ( (binary_expression "pcVar14 + 0x4e460" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(undefined4 *)(*piVar9 + 0x10);" (assignment_expression "uVar1 = *(undefined4 *)(*piVar9 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(*piVar9 + 0x10)" * (cast_expression "(undefined4 *)(*piVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x10)" ( (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) ;) (expression_statement "piStack_c0 = &iStack_94;" (assignment_expression "piStack_c0 = &iStack_94" identifier = (pointer_expression "&iStack_94" & identifier)) ;) (expression_statement "piStack_bc = piVar10;" (assignment_expression "piStack_bc = piVar10" identifier = identifier) ;) (expression_statement "uStack_b8 = uVar11;" (assignment_expression "uStack_b8 = uVar11" identifier = identifier) ;) (expression_statement "pcStack_b4 = pcVar15;" (assignment_expression "pcStack_b4 = pcVar15" identifier = identifier) ;) (expression_statement "get_edge_and_target(&iStack_cc,&iStack_c8);" (call_expression "get_edge_and_target(&iStack_cc,&iStack_c8)" identifier (argument_list "(&iStack_cc,&iStack_c8)" ( (pointer_expression "&iStack_cc" & identifier) , (pointer_expression "&iStack_c8" & identifier) ))) ;) (expression_statement "iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);" (assignment_expression "iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc)" identifier = (call_expression "go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc)" identifier (argument_list "(1,*piVar9 + 0x10,&iStack_cc)" ( number_literal , (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" * identifier) + number_literal) , (pointer_expression "&iStack_cc" & identifier) )))) ;) (if_statement "if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }" if (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) (compound_statement "{\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }" { (expression_statement "set_proper_index_and_pww(&iStack_cc,iStack_c8,1);" (call_expression "set_proper_index_and_pww(&iStack_cc,iStack_c8,1)" identifier (argument_list "(&iStack_cc,iStack_c8,1)" ( (pointer_expression "&iStack_cc" & identifier) , identifier , number_literal ))) ;) (if_statement "if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" if (parenthesized_expression "((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0))" ( (binary_expression "(*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)" (parenthesized_expression "(*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1)" ( (binary_expression "*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1" (pointer_expression "*(int *)(*piVar9 + 0x24)" * (cast_expression "(int *)(*piVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x24)" ( (binary_expression "*piVar9 + 0x24" (pointer_expression "*piVar9" * identifier) + number_literal) )))) == (binary_expression "**(int **)(pcVar14 + 0x4e2e4) + -1" (pointer_expression "**(int **)(pcVar14 + 0x4e2e4)" * (pointer_expression "*(int **)(pcVar14 + 0x4e2e4)" * (cast_expression "(int **)(pcVar14 + 0x4e2e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e2e4)" ( (binary_expression "pcVar14 + 0x4e2e4" identifier + number_literal) ))))) + number_literal)) )) && (parenthesized_expression "((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)" ( (binary_expression "(**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0" (parenthesized_expression "(**(uint **)(pcVar14 + 0x4e2fc) & 0x4000)" ( (binary_expression "**(uint **)(pcVar14 + 0x4e2fc) & 0x4000" (pointer_expression "**(uint **)(pcVar14 + 0x4e2fc)" * (pointer_expression "*(uint **)(pcVar14 + 0x4e2fc)" * (cast_expression "(uint **)(pcVar14 + 0x4e2fc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e2fc)" ( (binary_expression "pcVar14 + 0x4e2fc" identifier + number_literal) ))))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" { (expression_statement "(**(code **)(pcVar14 + 0x4e7f8))(1);" (call_expression "(**(code **)(pcVar14 + 0x4e7f8))(1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e7f8))" ( (pointer_expression "**(code **)(pcVar14 + 0x4e7f8)" * (pointer_expression "*(code **)(pcVar14 + 0x4e7f8)" * (cast_expression "(code **)(pcVar14 + 0x4e7f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e7f8)" ( (binary_expression "pcVar14 + 0x4e7f8" identifier + number_literal) ))))) )) (argument_list "(1)" ( number_literal ))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e460)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e460)" * (cast_expression "(int **)(pcVar14 + 0x4e460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e460)" ( (binary_expression "pcVar14 + 0x4e460" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" else (compound_statement "{\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" { (expression_statement "(**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);" (call_expression "(**(code **)(pcVar14 + 0x4e7d0))(uVar1,1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e7d0))" ( (pointer_expression "**(code **)(pcVar14 + 0x4e7d0)" * (pointer_expression "*(code **)(pcVar14 + 0x4e7d0)" * (cast_expression "(code **)(pcVar14 + 0x4e7d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e7d0)" ( (binary_expression "pcVar14 + 0x4e7d0" identifier + number_literal) ))))) )) (argument_list "(uVar1,1)" ( identifier , number_literal ))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e460)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e460)" * (cast_expression "(int **)(pcVar14 + 0x4e460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e460)" ( (binary_expression "pcVar14 + 0x4e460" identifier + number_literal) ))))) ;) }))) (expression_statement "*(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;" (assignment_expression "*(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8" (pointer_expression "*(int *)(*piVar9 + 0x20)" * (cast_expression "(int *)(*piVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x20)" ( (binary_expression "*piVar9 + 0x20" (pointer_expression "*piVar9" * identifier) + number_literal) )))) = (binary_expression "iStack_cc + iStack_c8" identifier + identifier)) ;) })) (if_statement "if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }" if (parenthesized_expression "(iStack_c4 != **(int **)(pcVar14 + 0x4eea4))" ( (binary_expression "iStack_c4 != **(int **)(pcVar14 + 0x4eea4)" identifier != (pointer_expression "**(int **)(pcVar14 + 0x4eea4)" * (pointer_expression "*(int **)(pcVar14 + 0x4eea4)" * (cast_expression "(int **)(pcVar14 + 0x4eea4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4eea4)" ( (binary_expression "pcVar14 + 0x4eea4" identifier + number_literal) )))))) )) (compound_statement "{\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }" { (expression_statement "pcVar14 = *(code **)(pcVar14 + 0x4ee70);" (assignment_expression "pcVar14 = *(code **)(pcVar14 + 0x4ee70)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x4ee70)" * (cast_expression "(code **)(pcVar14 + 0x4ee70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4ee70)" ( (binary_expression "pcVar14 + 0x4ee70" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = **(int **)(pcVar14 + 0x4e31c);" (assignment_expression "iVar3 = **(int **)(pcVar14 + 0x4e31c)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x4e31c)" * (pointer_expression "*(int **)(pcVar14 + 0x4e31c)" * (cast_expression "(int **)(pcVar14 + 0x4e31c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e31c)" ( (binary_expression "pcVar14 + 0x4e31c" identifier + number_literal) )))))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }" if (parenthesized_expression "((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0))" ( (binary_expression "(*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)" (parenthesized_expression "(*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0" (pointer_expression "*(int *)(*(int *)(iVar3 + 0xc) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar3 + 0xc) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0xc)" ( (binary_expression "*(int *)(iVar3 + 0xc) + 0xc" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)" ( (comma_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar3 + 0x18) != 0" (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }" { (if_statement "if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" if (parenthesized_expression "(*(int *)(iVar3 + 0x24) == *piVar9 + -1)" ( (binary_expression "*(int *)(iVar3 + 0x24) == *piVar9 + -1" (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) )))) == (binary_expression "*piVar9 + -1" (pointer_expression "*piVar9" * identifier) + number_literal)) )) (compound_statement "{\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" { (expression_statement "do_up();" (call_expression "do_up()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" else (compound_statement "{\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" { (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) ;) }))) (if_statement "if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }" if (parenthesized_expression "(1 < *piVar9)" ( (binary_expression "1 < *piVar9" number_literal < (pointer_expression "*piVar9" * identifier)) )) (compound_statement "{\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }" { (expression_statement "(**(code **)(pcVar14 + 0x4e6b4))(0);" (call_expression "(**(code **)(pcVar14 + 0x4e6b4))(0)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e6b4))" ( (pointer_expression "**(code **)(pcVar14 + 0x4e6b4)" * (pointer_expression "*(code **)(pcVar14 + 0x4e6b4)" * (cast_expression "(code **)(pcVar14 + 0x4e6b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e6b4)" ( (binary_expression "pcVar14 + 0x4e6b4" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) })) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid do_home(void)\n\n{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  size_t sVar1;\n  size_t sVar2;\n  _Bool _Var4;\n  size_t sVar3;\n  char *pcVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  filestruct *line;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  size_t sStackY_cc;\n  size_t sStackY_c8;\n  int iStackY_c4;\n  size_t *psStackY_c0;\n  int *piStackY_bc;\n  undefined4 uStackY_b8;\n  code *pcStackY_b4;\n  code *pcStackY_a0;\n  size_t sStackY_94;\n  size_t sStackY_90;\n  int iStackY_8c;\n  size_t sStackY_88;\n  filestruct *pfStackY_84;\n  size_t sStackY_80;\n  code *pcStackY_7c;\n  undefined *puStackY_68;\n  _Bool _StackY_5d;\n  int iStackY_5c;\n  size_t sStackY_58;\n  size_t sStackY_54;\n  undefined4 uStackY_50;\n  undefined *puStackY_4c;\n  size_t leftedge;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar10 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  sVar1 = xplustabs();\n  puVar11 = PTR_openfile_0007c6e8;\n  leftedge = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar6 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar11 = PTR_openfile_0007c6e8;\n    sVar2 = indent_length((char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar8 = *(int *)puVar11;\n    if (*(char *)(**(int **)(iVar8 + 0x10) + sVar2) == '\0') goto LAB_0002de5c;\n    if (*(size_t *)(iVar8 + 0x1c) == sVar2) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)) goto LAB_0002de70;\n      *(size_t *)(iVar8 + 0x1c) = sVar2;\n    }\nLAB_0002dd78:\n    uVar6 = *(uint *)PTR_openfile_0007c6e8;\n    sVar2 = xplustabs();\n    *(size_t *)(uVar6 + 0x20) = sVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar10,1);\n  }\n  else {\n    leftedge = leftedge_for(sVar1,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar6 = proper_x(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)\n    ;\n    puVar11 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar8 = *(int *)PTR_openfile_0007c6e8;\n    if (*(size_t *)(iVar8 + 0x1c) == uVar6) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar8 + 0x1c) = uVar6;\n    *(size_t *)(iVar8 + 0x20) = leftedge;\nLAB_0002dda8:\n    _Var4 = line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (CONCAT31(extraout_var,_Var4) != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStackY_68 = puVar13 + 0x565cc;\n  iStackY_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar7 = *(int **)(puVar13 + 0x4e794);\n  uVar12 = *(undefined4 *)(*piVar7 + 0x10);\n  sStackY_58 = uVar6;\n  sStackY_54 = sVar1;\n  uStackY_50 = uVar10;\n  puStackY_4c = puVar11;\n  sVar1 = xplustabs();\n  iVar8 = *piVar7;\n  line = *(filestruct **)(iVar8 + 0x10);\n  uVar10 = (**(code **)(puStackY_68 + -0x74f0))(line->data);\n  if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar8 + 0x1c) = uVar10;\nLAB_0002dfe4:\n    sVar2 = **(size_t **)(puStackY_68 + -0x7e38);\n    sVar3 = xplustabs();\n    *(size_t *)(sVar2 + 0x20) = sVar3;\n    if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStackY_68 + -0x7ac8))(uVar12,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    _StackY_5d = false;\n    sVar2 = leftedge_for(sVar1,line);\n    sVar2 = get_softwrap_breakpoint\n                      ((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,\n                       &_StackY_5d);\n    line = *(filestruct **)(puStackY_68 + -0x7e38);\n    if (_StackY_5d == false) {\n      sVar2 = sVar2 - 1;\n    }\n    sVar3 = actual_x((char *)**(undefined4 **)(line->data + 0x10),sVar2);\n    pcVar5 = line->data;\n    if (*(size_t *)(pcVar5 + 0x1c) == sVar3) {\n      *(undefined4 *)(pcVar5 + 0x1c) = uVar10;\n      goto LAB_0002dfe4;\n    }\n    *(size_t *)(pcVar5 + 0x1c) = sVar3;\n    *(size_t *)(pcVar5 + 0x20) = sVar2;\n  }\n  _Var4 = line_needs_update(sVar1,*(size_t *)(**(int **)(puStackY_68 + -0x7e38) + 0x20));\n  if (CONCAT31(extraout_var_00,_Var4) != 0) {\n    (**(code **)(puStackY_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStackY_5c == **(int **)(puStackY_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStackY_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStackY_a0 = pcVar14 + 0x563d0;\n  iStackY_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar7 = *(int **)(pcVar14 + 0x4e598);\n  uVar10 = *(undefined4 *)(*piVar7 + 0x10);\n  sStackY_88 = sVar2;\n  pfStackY_84 = line;\n  sStackY_80 = sVar1;\n  pcStackY_7c = pcVar15;\n  get_edge_and_target(&sStackY_94,&sStackY_90);\n  iVar8 = go_back_chunks(1,(filestruct **)(*piVar7 + 0x10),&sStackY_94);\n  if (iVar8 < 1) {\n    set_proper_index_and_pww(&sStackY_94,sStackY_90,false);\n    if ((*(int *)(*piVar7 + 0x24) == 0) && ((**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStackY_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    *(size_t *)(*piVar9 + 0x20) = sStackY_94 + sStackY_90;\n  }\n  if (iStackY_8c != **(int **)(pcStackY_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStackY_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStackY_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar12 = *(undefined4 *)(*piVar9 + 0x10);\n    psStackY_c0 = &sStackY_94;\n    piStackY_bc = piVar7;\n    uStackY_b8 = uVar10;\n    pcStackY_b4 = pcVar15;\n    get_edge_and_target(&sStackY_cc,&sStackY_c8);\n    iVar8 = go_forward_chunks(1,(filestruct **)(*piVar9 + 0x10),&sStackY_cc);\n    if (iVar8 < 1) {\n      set_proper_index_and_pww(&sStackY_cc,sStackY_c8,true);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(size_t *)(*piVar7 + 0x20) = sStackY_cc + sStackY_c8;\n    }\n    if (iStackY_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar8 = **(int **)(pcVar14 + 0x4e31c);\n      piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||\n         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)) {\n        if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar7) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}\n\n" comment (function_definition "void do_home(void)\n\n{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  size_t sVar1;\n  size_t sVar2;\n  _Bool _Var4;\n  size_t sVar3;\n  char *pcVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  filestruct *line;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  size_t sStackY_cc;\n  size_t sStackY_c8;\n  int iStackY_c4;\n  size_t *psStackY_c0;\n  int *piStackY_bc;\n  undefined4 uStackY_b8;\n  code *pcStackY_b4;\n  code *pcStackY_a0;\n  size_t sStackY_94;\n  size_t sStackY_90;\n  int iStackY_8c;\n  size_t sStackY_88;\n  filestruct *pfStackY_84;\n  size_t sStackY_80;\n  code *pcStackY_7c;\n  undefined *puStackY_68;\n  _Bool _StackY_5d;\n  int iStackY_5c;\n  size_t sStackY_58;\n  size_t sStackY_54;\n  undefined4 uStackY_50;\n  undefined *puStackY_4c;\n  size_t leftedge;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar10 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  sVar1 = xplustabs();\n  puVar11 = PTR_openfile_0007c6e8;\n  leftedge = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar6 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar11 = PTR_openfile_0007c6e8;\n    sVar2 = indent_length((char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar8 = *(int *)puVar11;\n    if (*(char *)(**(int **)(iVar8 + 0x10) + sVar2) == '\0') goto LAB_0002de5c;\n    if (*(size_t *)(iVar8 + 0x1c) == sVar2) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)) goto LAB_0002de70;\n      *(size_t *)(iVar8 + 0x1c) = sVar2;\n    }\nLAB_0002dd78:\n    uVar6 = *(uint *)PTR_openfile_0007c6e8;\n    sVar2 = xplustabs();\n    *(size_t *)(uVar6 + 0x20) = sVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar10,1);\n  }\n  else {\n    leftedge = leftedge_for(sVar1,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar6 = proper_x(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)\n    ;\n    puVar11 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar8 = *(int *)PTR_openfile_0007c6e8;\n    if (*(size_t *)(iVar8 + 0x1c) == uVar6) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar8 + 0x1c) = uVar6;\n    *(size_t *)(iVar8 + 0x20) = leftedge;\nLAB_0002dda8:\n    _Var4 = line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (CONCAT31(extraout_var,_Var4) != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStackY_68 = puVar13 + 0x565cc;\n  iStackY_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar7 = *(int **)(puVar13 + 0x4e794);\n  uVar12 = *(undefined4 *)(*piVar7 + 0x10);\n  sStackY_58 = uVar6;\n  sStackY_54 = sVar1;\n  uStackY_50 = uVar10;\n  puStackY_4c = puVar11;\n  sVar1 = xplustabs();\n  iVar8 = *piVar7;\n  line = *(filestruct **)(iVar8 + 0x10);\n  uVar10 = (**(code **)(puStackY_68 + -0x74f0))(line->data);\n  if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar8 + 0x1c) = uVar10;\nLAB_0002dfe4:\n    sVar2 = **(size_t **)(puStackY_68 + -0x7e38);\n    sVar3 = xplustabs();\n    *(size_t *)(sVar2 + 0x20) = sVar3;\n    if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStackY_68 + -0x7ac8))(uVar12,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    _StackY_5d = false;\n    sVar2 = leftedge_for(sVar1,line);\n    sVar2 = get_softwrap_breakpoint\n                      ((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,\n                       &_StackY_5d);\n    line = *(filestruct **)(puStackY_68 + -0x7e38);\n    if (_StackY_5d == false) {\n      sVar2 = sVar2 - 1;\n    }\n    sVar3 = actual_x((char *)**(undefined4 **)(line->data + 0x10),sVar2);\n    pcVar5 = line->data;\n    if (*(size_t *)(pcVar5 + 0x1c) == sVar3) {\n      *(undefined4 *)(pcVar5 + 0x1c) = uVar10;\n      goto LAB_0002dfe4;\n    }\n    *(size_t *)(pcVar5 + 0x1c) = sVar3;\n    *(size_t *)(pcVar5 + 0x20) = sVar2;\n  }\n  _Var4 = line_needs_update(sVar1,*(size_t *)(**(int **)(puStackY_68 + -0x7e38) + 0x20));\n  if (CONCAT31(extraout_var_00,_Var4) != 0) {\n    (**(code **)(puStackY_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStackY_5c == **(int **)(puStackY_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStackY_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStackY_a0 = pcVar14 + 0x563d0;\n  iStackY_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar7 = *(int **)(pcVar14 + 0x4e598);\n  uVar10 = *(undefined4 *)(*piVar7 + 0x10);\n  sStackY_88 = sVar2;\n  pfStackY_84 = line;\n  sStackY_80 = sVar1;\n  pcStackY_7c = pcVar15;\n  get_edge_and_target(&sStackY_94,&sStackY_90);\n  iVar8 = go_back_chunks(1,(filestruct **)(*piVar7 + 0x10),&sStackY_94);\n  if (iVar8 < 1) {\n    set_proper_index_and_pww(&sStackY_94,sStackY_90,false);\n    if ((*(int *)(*piVar7 + 0x24) == 0) && ((**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStackY_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    *(size_t *)(*piVar9 + 0x20) = sStackY_94 + sStackY_90;\n  }\n  if (iStackY_8c != **(int **)(pcStackY_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStackY_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStackY_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar12 = *(undefined4 *)(*piVar9 + 0x10);\n    psStackY_c0 = &sStackY_94;\n    piStackY_bc = piVar7;\n    uStackY_b8 = uVar10;\n    pcStackY_b4 = pcVar15;\n    get_edge_and_target(&sStackY_cc,&sStackY_c8);\n    iVar8 = go_forward_chunks(1,(filestruct **)(*piVar9 + 0x10),&sStackY_cc);\n    if (iVar8 < 1) {\n      set_proper_index_and_pww(&sStackY_cc,sStackY_c8,true);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(size_t *)(*piVar7 + 0x20) = sStackY_cc + sStackY_c8;\n    }\n    if (iStackY_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar8 = **(int **)(pcVar14 + 0x4e31c);\n      piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||\n         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)) {\n        if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar7) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "do_home(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  size_t sVar1;\n  size_t sVar2;\n  _Bool _Var4;\n  size_t sVar3;\n  char *pcVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  filestruct *line;\n  int *piVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  undefined4 uVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  size_t sStackY_cc;\n  size_t sStackY_c8;\n  int iStackY_c4;\n  size_t *psStackY_c0;\n  int *piStackY_bc;\n  undefined4 uStackY_b8;\n  code *pcStackY_b4;\n  code *pcStackY_a0;\n  size_t sStackY_94;\n  size_t sStackY_90;\n  int iStackY_8c;\n  size_t sStackY_88;\n  filestruct *pfStackY_84;\n  size_t sStackY_80;\n  code *pcStackY_7c;\n  undefined *puStackY_68;\n  _Bool _StackY_5d;\n  int iStackY_5c;\n  size_t sStackY_58;\n  size_t sStackY_54;\n  undefined4 uStackY_50;\n  undefined *puStackY_4c;\n  size_t leftedge;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar10 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  sVar1 = xplustabs();\n  puVar11 = PTR_openfile_0007c6e8;\n  leftedge = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar6 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar11 = PTR_openfile_0007c6e8;\n    sVar2 = indent_length((char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar8 = *(int *)puVar11;\n    if (*(char *)(**(int **)(iVar8 + 0x10) + sVar2) == '\0') goto LAB_0002de5c;\n    if (*(size_t *)(iVar8 + 0x1c) == sVar2) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)) goto LAB_0002de70;\n      *(size_t *)(iVar8 + 0x1c) = sVar2;\n    }\nLAB_0002dd78:\n    uVar6 = *(uint *)PTR_openfile_0007c6e8;\n    sVar2 = xplustabs();\n    *(size_t *)(uVar6 + 0x20) = sVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar10,1);\n  }\n  else {\n    leftedge = leftedge_for(sVar1,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar6 = proper_x(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)\n    ;\n    puVar11 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar8 = *(int *)PTR_openfile_0007c6e8;\n    if (*(size_t *)(iVar8 + 0x1c) == uVar6) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar8 + 0x1c) = uVar6;\n    *(size_t *)(iVar8 + 0x20) = leftedge;\nLAB_0002dda8:\n    _Var4 = line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (CONCAT31(extraout_var,_Var4) != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStackY_68 = puVar13 + 0x565cc;\n  iStackY_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar7 = *(int **)(puVar13 + 0x4e794);\n  uVar12 = *(undefined4 *)(*piVar7 + 0x10);\n  sStackY_58 = uVar6;\n  sStackY_54 = sVar1;\n  uStackY_50 = uVar10;\n  puStackY_4c = puVar11;\n  sVar1 = xplustabs();\n  iVar8 = *piVar7;\n  line = *(filestruct **)(iVar8 + 0x10);\n  uVar10 = (**(code **)(puStackY_68 + -0x74f0))(line->data);\n  if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar8 + 0x1c) = uVar10;\nLAB_0002dfe4:\n    sVar2 = **(size_t **)(puStackY_68 + -0x7e38);\n    sVar3 = xplustabs();\n    *(size_t *)(sVar2 + 0x20) = sVar3;\n    if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStackY_68 + -0x7ac8))(uVar12,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    _StackY_5d = false;\n    sVar2 = leftedge_for(sVar1,line);\n    sVar2 = get_softwrap_breakpoint\n                      ((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,\n                       &_StackY_5d);\n    line = *(filestruct **)(puStackY_68 + -0x7e38);\n    if (_StackY_5d == false) {\n      sVar2 = sVar2 - 1;\n    }\n    sVar3 = actual_x((char *)**(undefined4 **)(line->data + 0x10),sVar2);\n    pcVar5 = line->data;\n    if (*(size_t *)(pcVar5 + 0x1c) == sVar3) {\n      *(undefined4 *)(pcVar5 + 0x1c) = uVar10;\n      goto LAB_0002dfe4;\n    }\n    *(size_t *)(pcVar5 + 0x1c) = sVar3;\n    *(size_t *)(pcVar5 + 0x20) = sVar2;\n  }\n  _Var4 = line_needs_update(sVar1,*(size_t *)(**(int **)(puStackY_68 + -0x7e38) + 0x20));\n  if (CONCAT31(extraout_var_00,_Var4) != 0) {\n    (**(code **)(puStackY_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStackY_5c == **(int **)(puStackY_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStackY_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStackY_a0 = pcVar14 + 0x563d0;\n  iStackY_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar7 = *(int **)(pcVar14 + 0x4e598);\n  uVar10 = *(undefined4 *)(*piVar7 + 0x10);\n  sStackY_88 = sVar2;\n  pfStackY_84 = line;\n  sStackY_80 = sVar1;\n  pcStackY_7c = pcVar15;\n  get_edge_and_target(&sStackY_94,&sStackY_90);\n  iVar8 = go_back_chunks(1,(filestruct **)(*piVar7 + 0x10),&sStackY_94);\n  if (iVar8 < 1) {\n    set_proper_index_and_pww(&sStackY_94,sStackY_90,false);\n    if ((*(int *)(*piVar7 + 0x24) == 0) && ((**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStackY_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    *(size_t *)(*piVar9 + 0x20) = sStackY_94 + sStackY_90;\n  }\n  if (iStackY_8c != **(int **)(pcStackY_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStackY_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStackY_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar12 = *(undefined4 *)(*piVar9 + 0x10);\n    psStackY_c0 = &sStackY_94;\n    piStackY_bc = piVar7;\n    uStackY_b8 = uVar10;\n    pcStackY_b4 = pcVar15;\n    get_edge_and_target(&sStackY_cc,&sStackY_c8);\n    iVar8 = go_forward_chunks(1,(filestruct **)(*piVar9 + 0x10),&sStackY_cc);\n    if (iVar8 < 1) {\n      set_proper_index_and_pww(&sStackY_cc,sStackY_c8,true);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(size_t *)(*piVar7 + 0x20) = sStackY_cc + sStackY_c8;\n    }\n    if (iStackY_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar8 = **(int **)(pcVar14 + 0x4e31c);\n      piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||\n         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)) {\n        if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar7) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}" { (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "_Bool _Var4;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "filestruct *line;" type_identifier (pointer_declarator "*line" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "size_t sStackY_cc;" primitive_type identifier ;) (declaration "size_t sStackY_c8;" primitive_type identifier ;) (declaration "int iStackY_c4;" primitive_type identifier ;) (declaration "size_t *psStackY_c0;" primitive_type (pointer_declarator "*psStackY_c0" * identifier) ;) (declaration "int *piStackY_bc;" primitive_type (pointer_declarator "*piStackY_bc" * identifier) ;) (declaration "undefined4 uStackY_b8;" type_identifier identifier ;) (declaration "code *pcStackY_b4;" type_identifier (pointer_declarator "*pcStackY_b4" * identifier) ;) (declaration "code *pcStackY_a0;" type_identifier (pointer_declarator "*pcStackY_a0" * identifier) ;) (declaration "size_t sStackY_94;" primitive_type identifier ;) (declaration "size_t sStackY_90;" primitive_type identifier ;) (declaration "int iStackY_8c;" primitive_type identifier ;) (declaration "size_t sStackY_88;" primitive_type identifier ;) (declaration "filestruct *pfStackY_84;" type_identifier (pointer_declarator "*pfStackY_84" * identifier) ;) (declaration "size_t sStackY_80;" primitive_type identifier ;) (declaration "code *pcStackY_7c;" type_identifier (pointer_declarator "*pcStackY_7c" * identifier) ;) (declaration "undefined *puStackY_68;" type_identifier (pointer_declarator "*puStackY_68" * identifier) ;) (declaration "_Bool _StackY_5d;" type_identifier identifier ;) (declaration "int iStackY_5c;" primitive_type identifier ;) (declaration "size_t sStackY_58;" primitive_type identifier ;) (declaration "size_t sStackY_54;" primitive_type identifier ;) (declaration "undefined4 uStackY_50;" type_identifier identifier ;) (declaration "undefined *puStackY_4c;" type_identifier (pointer_declarator "*puStackY_4c" * identifier) ;) (declaration "size_t leftedge;" primitive_type identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_0007d12c;" (assignment_expression "local_1c = *(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 "uVar10 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);" (assignment_expression "uVar10 = *(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) ))))) ;) (expression_statement "sVar1 = xplustabs();" (assignment_expression "sVar1 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar11 = PTR_openfile_0007c6e8;" (assignment_expression "puVar11 = PTR_openfile_0007c6e8" identifier = identifier) ;) (expression_statement "leftedge = 0;" (assignment_expression "leftedge = 0" identifier = number_literal) ;) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar6 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar11 = PTR_openfile_0007c6e8;\n    sVar2 = indent_length((char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar8 = *(int *)puVar11;\n    if (*(char *)(**(int **)(iVar8 + 0x10) + sVar2) == '\0') goto LAB_0002de5c;\n    if (*(size_t *)(iVar8 + 0x1c) == sVar2) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)) goto LAB_0002de70;\n      *(size_t *)(iVar8 + 0x1c) = sVar2;\n    }\nLAB_0002dd78:\n    uVar6 = *(uint *)PTR_openfile_0007c6e8;\n    sVar2 = xplustabs();\n    *(size_t *)(uVar6 + 0x20) = sVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar10,1);\n  }\n  else {\n    leftedge = leftedge_for(sVar1,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar6 = proper_x(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)\n    ;\n    puVar11 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar8 = *(int *)PTR_openfile_0007c6e8;\n    if (*(size_t *)(iVar8 + 0x1c) == uVar6) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar8 + 0x1c) = uVar6;\n    *(size_t *)(iVar8 + 0x20) = leftedge;\nLAB_0002dda8:\n    _Var4 = line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (CONCAT31(extraout_var,_Var4) != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\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    uVar6 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar11 = PTR_openfile_0007c6e8;\n    sVar2 = indent_length((char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar8 = *(int *)puVar11;\n    if (*(char *)(**(int **)(iVar8 + 0x10) + sVar2) == '\0') goto LAB_0002de5c;\n    if (*(size_t *)(iVar8 + 0x1c) == sVar2) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)) goto LAB_0002de70;\n      *(size_t *)(iVar8 + 0x1c) = sVar2;\n    }\nLAB_0002dd78:\n    uVar6 = *(uint *)PTR_openfile_0007c6e8;\n    sVar2 = xplustabs();\n    *(size_t *)(uVar6 + 0x20) = sVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar10,1);\n  }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (if_statement "if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;" if (parenthesized_expression "(-1 < *(int *)PTR_flags_0007c584 << 7)" ( (binary_expression "-1 < *(int *)PTR_flags_0007c584 << 7" number_literal < (binary_expression "*(int *)PTR_flags_0007c584 << 7" (pointer_expression "*(int *)PTR_flags_0007c584" * (cast_expression "(int *)PTR_flags_0007c584" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )) (goto_statement "goto LAB_0002dd70;" goto statement_identifier ;)) (labeled_statement "LAB_0002de94:\n    puVar11 = PTR_openfile_0007c6e8;" statement_identifier : (expression_statement "puVar11 = PTR_openfile_0007c6e8;" (assignment_expression "puVar11 = PTR_openfile_0007c6e8" identifier = identifier) ;)) (expression_statement "sVar2 = indent_length((char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "sVar2 = indent_length((char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier = (call_expression "indent_length((char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier (argument_list "((char *)**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" ( (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 "iVar8 = *(int *)puVar11;" (assignment_expression "iVar8 = *(int *)puVar11" identifier = (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(char *)(**(int **)(iVar8 + 0x10) + sVar2) == '\0') goto LAB_0002de5c;" if (parenthesized_expression "(*(char *)(**(int **)(iVar8 + 0x10) + sVar2) == '\0')" ( (binary_expression "*(char *)(**(int **)(iVar8 + 0x10) + sVar2) == '\0'" (pointer_expression "*(char *)(**(int **)(iVar8 + 0x10) + sVar2)" * (cast_expression "(char *)(**(int **)(iVar8 + 0x10) + sVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar8 + 0x10) + sVar2)" ( (binary_expression "**(int **)(iVar8 + 0x10) + sVar2" (pointer_expression "**(int **)(iVar8 + 0x10)" * (pointer_expression "*(int **)(iVar8 + 0x10)" * (cast_expression "(int **)(iVar8 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) ))))) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002de5c;" goto statement_identifier ;)) (if_statement "if (*(size_t *)(iVar8 + 0x1c) == sVar2) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)) goto LAB_0002de70;\n      *(size_t *)(iVar8 + 0x1c) = sVar2;\n    }" if (parenthesized_expression "(*(size_t *)(iVar8 + 0x1c) == sVar2)" ( (binary_expression "*(size_t *)(iVar8 + 0x1c) == sVar2" (pointer_expression "*(size_t *)(iVar8 + 0x1c)" * (cast_expression "(size_t *)(iVar8 + 0x1c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n    }" { (expression_statement "*(undefined4 *)(iVar8 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)) goto LAB_0002de70;\n      *(size_t *)(iVar8 + 0x1c) = sVar2;\n    }" else (compound_statement "{\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)) goto LAB_0002de70;\n      *(size_t *)(iVar8 + 0x1c) = sVar2;\n    }" { (if_statement "if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)) goto LAB_0002de70;" if (parenthesized_expression "(((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6))" ( (binary_expression "((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (sVar2 < uVar6)" (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) )) && (parenthesized_expression "(sVar2 < uVar6)" ( (binary_expression "sVar2 < uVar6" identifier < identifier) ))) )) (goto_statement "goto LAB_0002de70;" goto statement_identifier ;)) (expression_statement "*(size_t *)(iVar8 + 0x1c) = sVar2;" (assignment_expression "*(size_t *)(iVar8 + 0x1c) = sVar2" (pointer_expression "*(size_t *)(iVar8 + 0x1c)" * (cast_expression "(size_t *)(iVar8 + 0x1c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = identifier) ;) }))) (labeled_statement "LAB_0002dd78:\n    uVar6 = *(uint *)PTR_openfile_0007c6e8;" statement_identifier : (expression_statement "uVar6 = *(uint *)PTR_openfile_0007c6e8;" (assignment_expression "uVar6 = *(uint *)PTR_openfile_0007c6e8" identifier = (pointer_expression "*(uint *)PTR_openfile_0007c6e8" * (cast_expression "(uint *)PTR_openfile_0007c6e8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "sVar2 = xplustabs();" (assignment_expression "sVar2 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(size_t *)(uVar6 + 0x20) = sVar2;" (assignment_expression "*(size_t *)(uVar6 + 0x20) = sVar2" (pointer_expression "*(size_t *)(uVar6 + 0x20)" * (cast_expression "(size_t *)(uVar6 + 0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x20)" ( (binary_expression "uVar6 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;" 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) )) (goto_statement "goto LAB_0002dda8;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_edit_redraw_0007ca58)(uVar10,1);" (call_expression "(*(code *)PTR_edit_redraw_0007ca58)(uVar10,1)" (parenthesized_expression "(*(code *)PTR_edit_redraw_0007ca58)" ( (pointer_expression "*(code *)PTR_edit_redraw_0007ca58" * (cast_expression "(code *)PTR_edit_redraw_0007ca58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar10,1)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n    leftedge = leftedge_for(sVar1,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar6 = proper_x(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)\n    ;\n    puVar11 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar8 = *(int *)PTR_openfile_0007c6e8;\n    if (*(size_t *)(iVar8 + 0x1c) == uVar6) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar8 + 0x1c) = uVar6;\n    *(size_t *)(iVar8 + 0x20) = leftedge;\nLAB_0002dda8:\n    _Var4 = line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (CONCAT31(extraout_var,_Var4) != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }" else (compound_statement "{\n    leftedge = leftedge_for(sVar1,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar6 = proper_x(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)\n    ;\n    puVar11 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar8 = *(int *)PTR_openfile_0007c6e8;\n    if (*(size_t *)(iVar8 + 0x1c) == uVar6) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar8 + 0x1c) = uVar6;\n    *(size_t *)(iVar8 + 0x20) = leftedge;\nLAB_0002dda8:\n    _Var4 = line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (CONCAT31(extraout_var,_Var4) != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }" { (expression_statement "leftedge = leftedge_for(sVar1,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "leftedge = leftedge_for(sVar1,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier = (call_expression "leftedge_for(sVar1,*(filestruct **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier (argument_list "(sVar1,*(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) )))) )))) ;) (expression_statement "uVar6 = proper_x(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)\n    ;" (assignment_expression "uVar6 = proper_x(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)" identifier = (call_expression "proper_x(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)" identifier (argument_list "(*(filestruct **)(*(int *)puVar11 + 0x10),&leftedge,false,leftedge,(_Bool *)0x0)" ( (pointer_expression "*(filestruct **)(*(int *)puVar11 + 0x10)" * (cast_expression "(filestruct **)(*(int *)puVar11 + 0x10)" ( (type_descriptor "filestruct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)puVar11 + 0x10)" ( (binary_expression "*(int *)puVar11 + 0x10" (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) , (pointer_expression "&leftedge" & identifier) , false , identifier , (cast_expression "(_Bool *)0x0" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "puVar11 = PTR_openfile_0007c6e8;" (assignment_expression "puVar11 = PTR_openfile_0007c6e8" identifier = identifier) ;) (if_statement "if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;" if (parenthesized_expression "(*(int *)PTR_flags_0007c584 << 7 < 0)" ( (binary_expression "*(int *)PTR_flags_0007c584 << 7 < 0" (binary_expression "*(int *)PTR_flags_0007c584 << 7" (pointer_expression "*(int *)PTR_flags_0007c584" * (cast_expression "(int *)PTR_flags_0007c584" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) < number_literal) )) (goto_statement "goto LAB_0002de94;" goto statement_identifier ;)) (labeled_statement "LAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" statement_identifier : (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\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 "{\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" { (labeled_statement "LAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" * (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) = number_literal) ;)) (goto_statement "goto LAB_0002dd78;" goto statement_identifier ;) }))) (labeled_statement "LAB_0002de70:\n    iVar8 = *(int *)PTR_openfile_0007c6e8;" statement_identifier : (expression_statement "iVar8 = *(int *)PTR_openfile_0007c6e8;" (assignment_expression "iVar8 = *(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))) ;)) (if_statement "if (*(size_t *)(iVar8 + 0x1c) == uVar6) {\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" if (parenthesized_expression "(*(size_t *)(iVar8 + 0x1c) == uVar6)" ( (binary_expression "*(size_t *)(iVar8 + 0x1c) == uVar6" (pointer_expression "*(size_t *)(iVar8 + 0x1c)" * (cast_expression "(size_t *)(iVar8 + 0x1c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(undefined4 *)(iVar8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" { (expression_statement "*(undefined4 *)(iVar8 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002dd78;" goto statement_identifier ;) })) (expression_statement "*(uint *)(iVar8 + 0x1c) = uVar6;" (assignment_expression "*(uint *)(iVar8 + 0x1c) = uVar6" (pointer_expression "*(uint *)(iVar8 + 0x1c)" * (cast_expression "(uint *)(iVar8 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)(iVar8 + 0x20) = leftedge;" (assignment_expression "*(size_t *)(iVar8 + 0x20) = leftedge" (pointer_expression "*(size_t *)(iVar8 + 0x20)" * (cast_expression "(size_t *)(iVar8 + 0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0002dda8:\n    _Var4 = line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20));" statement_identifier : (expression_statement "_Var4 = line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20));" (assignment_expression "_Var4 = line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" identifier = (call_expression "line_needs_update(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" identifier (argument_list "(sVar1,*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" ( identifier , (pointer_expression "*(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20)" * (cast_expression "(size_t *)(*(int *)PTR_openfile_0007c6e8 + 0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x20)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x20" (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 (CONCAT31(extraout_var,_Var4) != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }" if (parenthesized_expression "(CONCAT31(extraout_var,_Var4) != 0)" ( (binary_expression "CONCAT31(extraout_var,_Var4) != 0" (call_expression "CONCAT31(extraout_var,_Var4)" identifier (argument_list "(extraout_var,_Var4)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }" { (expression_statement "(*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));" (call_expression "(*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c))" (parenthesized_expression "(*(code *)PTR_update_line_0007ca78)" ( (pointer_expression "*(code *)PTR_update_line_0007ca78" * (cast_expression "(code *)PTR_update_line_0007ca78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c))" ( (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) )))) , (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" * (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) ))) ;) })) }))) (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_0007d12c)" ( (binary_expression "local_1c == *(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;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar13 = PTR___stack_chk_fail_0007d0f8;" (assignment_expression "puVar13 = 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 "()" ( ))) ;) (expression_statement "puStackY_68 = puVar13 + 0x565cc;" (assignment_expression "puStackY_68 = puVar13 + 0x565cc" identifier = (binary_expression "puVar13 + 0x565cc" identifier + number_literal)) ;) (expression_statement "iStackY_5c = **(int **)(puVar13 + 0x4f1d8);" (assignment_expression "iStackY_5c = **(int **)(puVar13 + 0x4f1d8)" identifier = (pointer_expression "**(int **)(puVar13 + 0x4f1d8)" * (pointer_expression "*(int **)(puVar13 + 0x4f1d8)" * (cast_expression "(int **)(puVar13 + 0x4f1d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x4f1d8)" ( (binary_expression "puVar13 + 0x4f1d8" identifier + number_literal) )))))) ;) (expression_statement "piVar7 = *(int **)(puVar13 + 0x4e794);" (assignment_expression "piVar7 = *(int **)(puVar13 + 0x4e794)" identifier = (pointer_expression "*(int **)(puVar13 + 0x4e794)" * (cast_expression "(int **)(puVar13 + 0x4e794)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x4e794)" ( (binary_expression "puVar13 + 0x4e794" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(*piVar7 + 0x10);" (assignment_expression "uVar12 = *(undefined4 *)(*piVar7 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(*piVar7 + 0x10)" * (cast_expression "(undefined4 *)(*piVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + 0x10)" ( (binary_expression "*piVar7 + 0x10" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) ;) (expression_statement "sStackY_58 = uVar6;" (assignment_expression "sStackY_58 = uVar6" identifier = identifier) ;) (expression_statement "sStackY_54 = sVar1;" (assignment_expression "sStackY_54 = sVar1" identifier = identifier) ;) (expression_statement "uStackY_50 = uVar10;" (assignment_expression "uStackY_50 = uVar10" identifier = identifier) ;) (expression_statement "puStackY_4c = puVar11;" (assignment_expression "puStackY_4c = puVar11" identifier = identifier) ;) (expression_statement "sVar1 = xplustabs();" (assignment_expression "sVar1 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "line = *(filestruct **)(iVar8 + 0x10);" (assignment_expression "line = *(filestruct **)(iVar8 + 0x10)" identifier = (pointer_expression "*(filestruct **)(iVar8 + 0x10)" * (cast_expression "(filestruct **)(iVar8 + 0x10)" ( (type_descriptor "filestruct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = (**(code **)(puStackY_68 + -0x74f0))(line->data);" (assignment_expression "uVar10 = (**(code **)(puStackY_68 + -0x74f0))(line->data)" identifier = (call_expression "(**(code **)(puStackY_68 + -0x74f0))(line->data)" (parenthesized_expression "(**(code **)(puStackY_68 + -0x74f0))" ( (pointer_expression "**(code **)(puStackY_68 + -0x74f0)" * (pointer_expression "*(code **)(puStackY_68 + -0x74f0)" * (cast_expression "(code **)(puStackY_68 + -0x74f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x74f0)" ( (binary_expression "puStackY_68 + -0x74f0" identifier + number_literal) ))))) )) (argument_list "(line->data)" ( (field_expression "line->data" identifier -> field_identifier) )))) ;) (if_statement "if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar8 + 0x1c) = uVar10;\nLAB_0002dfe4:\n    sVar2 = **(size_t **)(puStackY_68 + -0x7e38);\n    sVar3 = xplustabs();\n    *(size_t *)(sVar2 + 0x20) = sVar3;\n    if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStackY_68 + -0x7ac8))(uVar12,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    _StackY_5d = false;\n    sVar2 = leftedge_for(sVar1,line);\n    sVar2 = get_softwrap_breakpoint\n                      ((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,\n                       &_StackY_5d);\n    line = *(filestruct **)(puStackY_68 + -0x7e38);\n    if (_StackY_5d == false) {\n      sVar2 = sVar2 - 1;\n    }\n    sVar3 = actual_x((char *)**(undefined4 **)(line->data + 0x10),sVar2);\n    pcVar5 = line->data;\n    if (*(size_t *)(pcVar5 + 0x1c) == sVar3) {\n      *(undefined4 *)(pcVar5 + 0x1c) = uVar10;\n      goto LAB_0002dfe4;\n    }\n    *(size_t *)(pcVar5 + 0x1c) = sVar3;\n    *(size_t *)(pcVar5 + 0x20) = sVar2;\n  }" if (parenthesized_expression "((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) == 0)" ( (binary_expression "(*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2)" ( (binary_expression "*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2" (pointer_expression "*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4)" * (cast_expression "(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStackY_68 + -0x7f9c) + 4)" ( (binary_expression "*(int *)(puStackY_68 + -0x7f9c) + 4" (pointer_expression "*(int *)(puStackY_68 + -0x7f9c)" * (cast_expression "(int *)(puStackY_68 + -0x7f9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStackY_68 + -0x7f9c)" ( (binary_expression "puStackY_68 + -0x7f9c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(iVar8 + 0x1c) = uVar10;\nLAB_0002dfe4:\n    sVar2 = **(size_t **)(puStackY_68 + -0x7e38);\n    sVar3 = xplustabs();\n    *(size_t *)(sVar2 + 0x20) = sVar3;\n    if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStackY_68 + -0x7ac8))(uVar12,1);\n      goto LAB_0002e03c;\n    }\n  }" { (expression_statement "*(undefined4 *)(iVar8 + 0x1c) = uVar10;" (assignment_expression "*(undefined4 *)(iVar8 + 0x1c) = uVar10" (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0002dfe4:\n    sVar2 = **(size_t **)(puStackY_68 + -0x7e38);" statement_identifier : (expression_statement "sVar2 = **(size_t **)(puStackY_68 + -0x7e38);" (assignment_expression "sVar2 = **(size_t **)(puStackY_68 + -0x7e38)" identifier = (pointer_expression "**(size_t **)(puStackY_68 + -0x7e38)" * (pointer_expression "*(size_t **)(puStackY_68 + -0x7e38)" * (cast_expression "(size_t **)(puStackY_68 + -0x7e38)" ( (type_descriptor "size_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x7e38)" ( (binary_expression "puStackY_68 + -0x7e38" identifier + number_literal) )))))) ;)) (expression_statement "sVar3 = xplustabs();" (assignment_expression "sVar3 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(size_t *)(sVar2 + 0x20) = sVar3;" (assignment_expression "*(size_t *)(sVar2 + 0x20) = sVar3" (pointer_expression "*(size_t *)(sVar2 + 0x20)" * (cast_expression "(size_t *)(sVar2 + 0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar2 + 0x20)" ( (binary_expression "sVar2 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStackY_68 + -0x7ac8))(uVar12,1);\n      goto LAB_0002e03c;\n    }" if (parenthesized_expression "((*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2)" ( (binary_expression "*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4) & 2" (pointer_expression "*(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4)" * (cast_expression "(uint *)(*(int *)(puStackY_68 + -0x7f9c) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStackY_68 + -0x7f9c) + 4)" ( (binary_expression "*(int *)(puStackY_68 + -0x7f9c) + 4" (pointer_expression "*(int *)(puStackY_68 + -0x7f9c)" * (cast_expression "(int *)(puStackY_68 + -0x7f9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStackY_68 + -0x7f9c)" ( (binary_expression "puStackY_68 + -0x7f9c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      (**(code **)(puStackY_68 + -0x7ac8))(uVar12,1);\n      goto LAB_0002e03c;\n    }" { (expression_statement "(**(code **)(puStackY_68 + -0x7ac8))(uVar12,1);" (call_expression "(**(code **)(puStackY_68 + -0x7ac8))(uVar12,1)" (parenthesized_expression "(**(code **)(puStackY_68 + -0x7ac8))" ( (pointer_expression "**(code **)(puStackY_68 + -0x7ac8)" * (pointer_expression "*(code **)(puStackY_68 + -0x7ac8)" * (cast_expression "(code **)(puStackY_68 + -0x7ac8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x7ac8)" ( (binary_expression "puStackY_68 + -0x7ac8" identifier + number_literal) ))))) )) (argument_list "(uVar12,1)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_0002e03c;" goto statement_identifier ;) })) }) (else_clause "else {\n    _StackY_5d = false;\n    sVar2 = leftedge_for(sVar1,line);\n    sVar2 = get_softwrap_breakpoint\n                      ((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,\n                       &_StackY_5d);\n    line = *(filestruct **)(puStackY_68 + -0x7e38);\n    if (_StackY_5d == false) {\n      sVar2 = sVar2 - 1;\n    }\n    sVar3 = actual_x((char *)**(undefined4 **)(line->data + 0x10),sVar2);\n    pcVar5 = line->data;\n    if (*(size_t *)(pcVar5 + 0x1c) == sVar3) {\n      *(undefined4 *)(pcVar5 + 0x1c) = uVar10;\n      goto LAB_0002dfe4;\n    }\n    *(size_t *)(pcVar5 + 0x1c) = sVar3;\n    *(size_t *)(pcVar5 + 0x20) = sVar2;\n  }" else (compound_statement "{\n    _StackY_5d = false;\n    sVar2 = leftedge_for(sVar1,line);\n    sVar2 = get_softwrap_breakpoint\n                      ((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,\n                       &_StackY_5d);\n    line = *(filestruct **)(puStackY_68 + -0x7e38);\n    if (_StackY_5d == false) {\n      sVar2 = sVar2 - 1;\n    }\n    sVar3 = actual_x((char *)**(undefined4 **)(line->data + 0x10),sVar2);\n    pcVar5 = line->data;\n    if (*(size_t *)(pcVar5 + 0x1c) == sVar3) {\n      *(undefined4 *)(pcVar5 + 0x1c) = uVar10;\n      goto LAB_0002dfe4;\n    }\n    *(size_t *)(pcVar5 + 0x1c) = sVar3;\n    *(size_t *)(pcVar5 + 0x20) = sVar2;\n  }" { (expression_statement "_StackY_5d = false;" (assignment_expression "_StackY_5d = false" identifier = false) ;) (expression_statement "sVar2 = leftedge_for(sVar1,line);" (assignment_expression "sVar2 = leftedge_for(sVar1,line)" identifier = (call_expression "leftedge_for(sVar1,line)" identifier (argument_list "(sVar1,line)" ( identifier , identifier )))) ;) (expression_statement "sVar2 = get_softwrap_breakpoint\n                      ((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,\n                       &_StackY_5d);" (assignment_expression "sVar2 = get_softwrap_breakpoint\n                      ((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,\n                       &_StackY_5d)" identifier = (call_expression "get_softwrap_breakpoint\n                      ((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,\n                       &_StackY_5d)" identifier (argument_list "((char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10),sVar2,\n                       &_StackY_5d)" ( (cast_expression "(char *)**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10)" * (pointer_expression "*(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10)" * (cast_expression "(undefined4 **)(**(int **)(puStackY_68 + -0x7e38) + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(puStackY_68 + -0x7e38) + 0x10)" ( (binary_expression "**(int **)(puStackY_68 + -0x7e38) + 0x10" (pointer_expression "**(int **)(puStackY_68 + -0x7e38)" * (pointer_expression "*(int **)(puStackY_68 + -0x7e38)" * (cast_expression "(int **)(puStackY_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x7e38)" ( (binary_expression "puStackY_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) )))))) , identifier , (pointer_expression "&_StackY_5d" & identifier) )))) ;) (expression_statement "line = *(filestruct **)(puStackY_68 + -0x7e38);" (assignment_expression "line = *(filestruct **)(puStackY_68 + -0x7e38)" identifier = (pointer_expression "*(filestruct **)(puStackY_68 + -0x7e38)" * (cast_expression "(filestruct **)(puStackY_68 + -0x7e38)" ( (type_descriptor "filestruct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x7e38)" ( (binary_expression "puStackY_68 + -0x7e38" identifier + number_literal) ))))) ;) (if_statement "if (_StackY_5d == false) {\n      sVar2 = sVar2 - 1;\n    }" if (parenthesized_expression "(_StackY_5d == false)" ( (binary_expression "_StackY_5d == false" identifier == false) )) (compound_statement "{\n      sVar2 = sVar2 - 1;\n    }" { (expression_statement "sVar2 = sVar2 - 1;" (assignment_expression "sVar2 = sVar2 - 1" identifier = (binary_expression "sVar2 - 1" identifier - number_literal)) ;) })) (expression_statement "sVar3 = actual_x((char *)**(undefined4 **)(line->data + 0x10),sVar2);" (assignment_expression "sVar3 = actual_x((char *)**(undefined4 **)(line->data + 0x10),sVar2)" identifier = (call_expression "actual_x((char *)**(undefined4 **)(line->data + 0x10),sVar2)" identifier (argument_list "((char *)**(undefined4 **)(line->data + 0x10),sVar2)" ( (cast_expression "(char *)**(undefined4 **)(line->data + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(line->data + 0x10)" * (pointer_expression "*(undefined4 **)(line->data + 0x10)" * (cast_expression "(undefined4 **)(line->data + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(line->data + 0x10)" ( (binary_expression "line->data + 0x10" (field_expression "line->data" identifier -> field_identifier) + number_literal) )))))) , identifier )))) ;) (expression_statement "pcVar5 = line->data;" (assignment_expression "pcVar5 = line->data" identifier = (field_expression "line->data" identifier -> field_identifier)) ;) (if_statement "if (*(size_t *)(pcVar5 + 0x1c) == sVar3) {\n      *(undefined4 *)(pcVar5 + 0x1c) = uVar10;\n      goto LAB_0002dfe4;\n    }" if (parenthesized_expression "(*(size_t *)(pcVar5 + 0x1c) == sVar3)" ( (binary_expression "*(size_t *)(pcVar5 + 0x1c) == sVar3" (pointer_expression "*(size_t *)(pcVar5 + 0x1c)" * (cast_expression "(size_t *)(pcVar5 + 0x1c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0x1c)" ( (binary_expression "pcVar5 + 0x1c" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(undefined4 *)(pcVar5 + 0x1c) = uVar10;\n      goto LAB_0002dfe4;\n    }" { (expression_statement "*(undefined4 *)(pcVar5 + 0x1c) = uVar10;" (assignment_expression "*(undefined4 *)(pcVar5 + 0x1c) = uVar10" (pointer_expression "*(undefined4 *)(pcVar5 + 0x1c)" * (cast_expression "(undefined4 *)(pcVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0x1c)" ( (binary_expression "pcVar5 + 0x1c" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002dfe4;" goto statement_identifier ;) })) (expression_statement "*(size_t *)(pcVar5 + 0x1c) = sVar3;" (assignment_expression "*(size_t *)(pcVar5 + 0x1c) = sVar3" (pointer_expression "*(size_t *)(pcVar5 + 0x1c)" * (cast_expression "(size_t *)(pcVar5 + 0x1c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0x1c)" ( (binary_expression "pcVar5 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)(pcVar5 + 0x20) = sVar2;" (assignment_expression "*(size_t *)(pcVar5 + 0x20) = sVar2" (pointer_expression "*(size_t *)(pcVar5 + 0x20)" * (cast_expression "(size_t *)(pcVar5 + 0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar5 + 0x20)" ( (binary_expression "pcVar5 + 0x20" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "_Var4 = line_needs_update(sVar1,*(size_t *)(**(int **)(puStackY_68 + -0x7e38) + 0x20));" (assignment_expression "_Var4 = line_needs_update(sVar1,*(size_t *)(**(int **)(puStackY_68 + -0x7e38) + 0x20))" identifier = (call_expression "line_needs_update(sVar1,*(size_t *)(**(int **)(puStackY_68 + -0x7e38) + 0x20))" identifier (argument_list "(sVar1,*(size_t *)(**(int **)(puStackY_68 + -0x7e38) + 0x20))" ( identifier , (pointer_expression "*(size_t *)(**(int **)(puStackY_68 + -0x7e38) + 0x20)" * (cast_expression "(size_t *)(**(int **)(puStackY_68 + -0x7e38) + 0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puStackY_68 + -0x7e38) + 0x20)" ( (binary_expression "**(int **)(puStackY_68 + -0x7e38) + 0x20" (pointer_expression "**(int **)(puStackY_68 + -0x7e38)" * (pointer_expression "*(int **)(puStackY_68 + -0x7e38)" * (cast_expression "(int **)(puStackY_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x7e38)" ( (binary_expression "puStackY_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) )))) )))) ;) (if_statement "if (CONCAT31(extraout_var_00,_Var4) != 0) {\n    (**(code **)(puStackY_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c));\n  }" if (parenthesized_expression "(CONCAT31(extraout_var_00,_Var4) != 0)" ( (binary_expression "CONCAT31(extraout_var_00,_Var4) != 0" (call_expression "CONCAT31(extraout_var_00,_Var4)" identifier (argument_list "(extraout_var_00,_Var4)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n    (**(code **)(puStackY_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c));\n  }" { (expression_statement "(**(code **)(puStackY_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c));" (call_expression "(**(code **)(puStackY_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c))" (parenthesized_expression "(**(code **)(puStackY_68 + -0x7aa8))" ( (pointer_expression "**(code **)(puStackY_68 + -0x7aa8)" * (pointer_expression "*(code **)(puStackY_68 + -0x7aa8)" * (cast_expression "(code **)(puStackY_68 + -0x7aa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x7aa8)" ( (binary_expression "puStackY_68 + -0x7aa8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c))" ( (pointer_expression "*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10)" * (cast_expression "(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puStackY_68 + -0x7e38) + 0x10)" ( (binary_expression "**(int **)(puStackY_68 + -0x7e38) + 0x10" (pointer_expression "**(int **)(puStackY_68 + -0x7e38)" * (pointer_expression "*(int **)(puStackY_68 + -0x7e38)" * (cast_expression "(int **)(puStackY_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x7e38)" ( (binary_expression "puStackY_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c)" * (cast_expression "(undefined4 *)(**(int **)(puStackY_68 + -0x7e38) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puStackY_68 + -0x7e38) + 0x1c)" ( (binary_expression "**(int **)(puStackY_68 + -0x7e38) + 0x1c" (pointer_expression "**(int **)(puStackY_68 + -0x7e38)" * (pointer_expression "*(int **)(puStackY_68 + -0x7e38)" * (cast_expression "(int **)(puStackY_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x7e38)" ( (binary_expression "puStackY_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) )))) ))) ;) })) (labeled_statement "LAB_0002e03c:\n  if (iStackY_5c == **(int **)(puStackY_68 + -0x73f4)) {\n    return;\n  }" statement_identifier : (if_statement "if (iStackY_5c == **(int **)(puStackY_68 + -0x73f4)) {\n    return;\n  }" if (parenthesized_expression "(iStackY_5c == **(int **)(puStackY_68 + -0x73f4))" ( (binary_expression "iStackY_5c == **(int **)(puStackY_68 + -0x73f4)" identifier == (pointer_expression "**(int **)(puStackY_68 + -0x73f4)" * (pointer_expression "*(int **)(puStackY_68 + -0x73f4)" * (cast_expression "(int **)(puStackY_68 + -0x73f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x73f4)" ( (binary_expression "puStackY_68 + -0x73f4" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar14 = *(code **)(puStackY_68 + -0x7428);" (assignment_expression "pcVar14 = *(code **)(puStackY_68 + -0x7428)" identifier = (pointer_expression "*(code **)(puStackY_68 + -0x7428)" * (cast_expression "(code **)(puStackY_68 + -0x7428)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStackY_68 + -0x7428)" ( (binary_expression "puStackY_68 + -0x7428" identifier + number_literal) ))))) ;) (expression_statement "pcVar15 = do_up;" (assignment_expression "pcVar15 = do_up" identifier = identifier) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStackY_a0 = pcVar14 + 0x563d0;" (assignment_expression "pcStackY_a0 = pcVar14 + 0x563d0" identifier = (binary_expression "pcVar14 + 0x563d0" identifier + number_literal)) ;) (expression_statement "iStackY_8c = **(int **)(pcVar14 + 0x4efdc);" (assignment_expression "iStackY_8c = **(int **)(pcVar14 + 0x4efdc)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x4efdc)" * (pointer_expression "*(int **)(pcVar14 + 0x4efdc)" * (cast_expression "(int **)(pcVar14 + 0x4efdc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4efdc)" ( (binary_expression "pcVar14 + 0x4efdc" identifier + number_literal) )))))) ;) (expression_statement "piVar7 = *(int **)(pcVar14 + 0x4e598);" (assignment_expression "piVar7 = *(int **)(pcVar14 + 0x4e598)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e598)" * (cast_expression "(int **)(pcVar14 + 0x4e598)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e598)" ( (binary_expression "pcVar14 + 0x4e598" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(*piVar7 + 0x10);" (assignment_expression "uVar10 = *(undefined4 *)(*piVar7 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(*piVar7 + 0x10)" * (cast_expression "(undefined4 *)(*piVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + 0x10)" ( (binary_expression "*piVar7 + 0x10" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) ;) (expression_statement "sStackY_88 = sVar2;" (assignment_expression "sStackY_88 = sVar2" identifier = identifier) ;) (expression_statement "pfStackY_84 = line;" (assignment_expression "pfStackY_84 = line" identifier = identifier) ;) (expression_statement "sStackY_80 = sVar1;" (assignment_expression "sStackY_80 = sVar1" identifier = identifier) ;) (expression_statement "pcStackY_7c = pcVar15;" (assignment_expression "pcStackY_7c = pcVar15" identifier = identifier) ;) (expression_statement "get_edge_and_target(&sStackY_94,&sStackY_90);" (call_expression "get_edge_and_target(&sStackY_94,&sStackY_90)" identifier (argument_list "(&sStackY_94,&sStackY_90)" ( (pointer_expression "&sStackY_94" & identifier) , (pointer_expression "&sStackY_90" & identifier) ))) ;) (expression_statement "iVar8 = go_back_chunks(1,(filestruct **)(*piVar7 + 0x10),&sStackY_94);" (assignment_expression "iVar8 = go_back_chunks(1,(filestruct **)(*piVar7 + 0x10),&sStackY_94)" identifier = (call_expression "go_back_chunks(1,(filestruct **)(*piVar7 + 0x10),&sStackY_94)" identifier (argument_list "(1,(filestruct **)(*piVar7 + 0x10),&sStackY_94)" ( number_literal , (cast_expression "(filestruct **)(*piVar7 + 0x10)" ( (type_descriptor "filestruct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 0x10)" ( (binary_expression "*piVar7 + 0x10" (pointer_expression "*piVar7" * identifier) + number_literal) ))) , (pointer_expression "&sStackY_94" & identifier) )))) ;) (if_statement "if (iVar8 < 1) {\n    set_proper_index_and_pww(&sStackY_94,sStackY_90,false);\n    if ((*(int *)(*piVar7 + 0x24) == 0) && ((**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStackY_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    *(size_t *)(*piVar9 + 0x20) = sStackY_94 + sStackY_90;\n  }" if (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) (compound_statement "{\n    set_proper_index_and_pww(&sStackY_94,sStackY_90,false);\n    if ((*(int *)(*piVar7 + 0x24) == 0) && ((**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStackY_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    *(size_t *)(*piVar9 + 0x20) = sStackY_94 + sStackY_90;\n  }" { (expression_statement "set_proper_index_and_pww(&sStackY_94,sStackY_90,false);" (call_expression "set_proper_index_and_pww(&sStackY_94,sStackY_90,false)" identifier (argument_list "(&sStackY_94,sStackY_90,false)" ( (pointer_expression "&sStackY_94" & identifier) , identifier , false ))) ;) (if_statement "if ((*(int *)(*piVar7 + 0x24) == 0) && ((**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStackY_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }" if (parenthesized_expression "((*(int *)(*piVar7 + 0x24) == 0) && ((**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0))" ( (binary_expression "(*(int *)(*piVar7 + 0x24) == 0) && ((**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0)" (parenthesized_expression "(*(int *)(*piVar7 + 0x24) == 0)" ( (binary_expression "*(int *)(*piVar7 + 0x24) == 0" (pointer_expression "*(int *)(*piVar7 + 0x24)" * (cast_expression "(int *)(*piVar7 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + 0x24)" ( (binary_expression "*piVar7 + 0x24" (pointer_expression "*piVar7" * identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "((**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0)" ( (binary_expression "(**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000) != 0" (parenthesized_expression "(**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000)" ( (binary_expression "**(uint **)(pcStackY_a0 + -0x7f9c) & 0x4000" (pointer_expression "**(uint **)(pcStackY_a0 + -0x7f9c)" * (pointer_expression "*(uint **)(pcStackY_a0 + -0x7f9c)" * (cast_expression "(uint **)(pcStackY_a0 + -0x7f9c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStackY_a0 + -0x7f9c)" ( (binary_expression "pcStackY_a0 + -0x7f9c" identifier + number_literal) ))))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcStackY_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }" { (expression_statement "(**(code **)(pcStackY_a0 + -0x7aa0))(0);" (call_expression "(**(code **)(pcStackY_a0 + -0x7aa0))(0)" (parenthesized_expression "(**(code **)(pcStackY_a0 + -0x7aa0))" ( (pointer_expression "**(code **)(pcStackY_a0 + -0x7aa0)" * (pointer_expression "*(code **)(pcStackY_a0 + -0x7aa0)" * (cast_expression "(code **)(pcStackY_a0 + -0x7aa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStackY_a0 + -0x7aa0)" ( (binary_expression "pcStackY_a0 + -0x7aa0" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "piVar9 = *(int **)(pcStackY_a0 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(pcStackY_a0 + -0x7e38)" identifier = (pointer_expression "*(int **)(pcStackY_a0 + -0x7e38)" * (cast_expression "(int **)(pcStackY_a0 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStackY_a0 + -0x7e38)" ( (binary_expression "pcStackY_a0 + -0x7e38" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      (**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }" else (compound_statement "{\n      (**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1);\n      piVar9 = *(int **)(pcStackY_a0 + -0x7e38);\n    }" { (expression_statement "(**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1);" (call_expression "(**(code **)(pcStackY_a0 + -0x7ac8))(uVar10,1)" (parenthesized_expression "(**(code **)(pcStackY_a0 + -0x7ac8))" ( (pointer_expression "**(code **)(pcStackY_a0 + -0x7ac8)" * (pointer_expression "*(code **)(pcStackY_a0 + -0x7ac8)" * (cast_expression "(code **)(pcStackY_a0 + -0x7ac8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStackY_a0 + -0x7ac8)" ( (binary_expression "pcStackY_a0 + -0x7ac8" identifier + number_literal) ))))) )) (argument_list "(uVar10,1)" ( identifier , number_literal ))) ;) (expression_statement "piVar9 = *(int **)(pcStackY_a0 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(pcStackY_a0 + -0x7e38)" identifier = (pointer_expression "*(int **)(pcStackY_a0 + -0x7e38)" * (cast_expression "(int **)(pcStackY_a0 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStackY_a0 + -0x7e38)" ( (binary_expression "pcStackY_a0 + -0x7e38" identifier + number_literal) ))))) ;) }))) (expression_statement "*(size_t *)(*piVar9 + 0x20) = sStackY_94 + sStackY_90;" (assignment_expression "*(size_t *)(*piVar9 + 0x20) = sStackY_94 + sStackY_90" (pointer_expression "*(size_t *)(*piVar9 + 0x20)" * (cast_expression "(size_t *)(*piVar9 + 0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x20)" ( (binary_expression "*piVar9 + 0x20" (pointer_expression "*piVar9" * identifier) + number_literal) )))) = (binary_expression "sStackY_94 + sStackY_90" identifier + identifier)) ;) })) (if_statement "if (iStackY_8c != **(int **)(pcStackY_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStackY_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStackY_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar12 = *(undefined4 *)(*piVar9 + 0x10);\n    psStackY_c0 = &sStackY_94;\n    piStackY_bc = piVar7;\n    uStackY_b8 = uVar10;\n    pcStackY_b4 = pcVar15;\n    get_edge_and_target(&sStackY_cc,&sStackY_c8);\n    iVar8 = go_forward_chunks(1,(filestruct **)(*piVar9 + 0x10),&sStackY_cc);\n    if (iVar8 < 1) {\n      set_proper_index_and_pww(&sStackY_cc,sStackY_c8,true);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(size_t *)(*piVar7 + 0x20) = sStackY_cc + sStackY_c8;\n    }\n    if (iStackY_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar8 = **(int **)(pcVar14 + 0x4e31c);\n      piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||\n         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)) {\n        if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar7) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "(iStackY_8c != **(int **)(pcStackY_a0 + -0x73f4))" ( (binary_expression "iStackY_8c != **(int **)(pcStackY_a0 + -0x73f4)" identifier != (pointer_expression "**(int **)(pcStackY_a0 + -0x73f4)" * (pointer_expression "*(int **)(pcStackY_a0 + -0x73f4)" * (cast_expression "(int **)(pcStackY_a0 + -0x73f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStackY_a0 + -0x73f4)" ( (binary_expression "pcStackY_a0 + -0x73f4" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar14 = *(code **)(pcStackY_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStackY_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar12 = *(undefined4 *)(*piVar9 + 0x10);\n    psStackY_c0 = &sStackY_94;\n    piStackY_bc = piVar7;\n    uStackY_b8 = uVar10;\n    pcStackY_b4 = pcVar15;\n    get_edge_and_target(&sStackY_cc,&sStackY_c8);\n    iVar8 = go_forward_chunks(1,(filestruct **)(*piVar9 + 0x10),&sStackY_cc);\n    if (iVar8 < 1) {\n      set_proper_index_and_pww(&sStackY_cc,sStackY_c8,true);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(size_t *)(*piVar7 + 0x20) = sStackY_cc + sStackY_c8;\n    }\n    if (iStackY_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar8 = **(int **)(pcVar14 + 0x4e31c);\n      piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||\n         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)) {\n        if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar7) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }" { (expression_statement "pcVar14 = *(code **)(pcStackY_a0 + -0x7428);" (assignment_expression "pcVar14 = *(code **)(pcStackY_a0 + -0x7428)" identifier = (pointer_expression "*(code **)(pcStackY_a0 + -0x7428)" * (cast_expression "(code **)(pcStackY_a0 + -0x7428)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStackY_a0 + -0x7428)" ( (binary_expression "pcStackY_a0 + -0x7428" identifier + number_literal) ))))) ;) (expression_statement "pcVar15 = do_down;" (assignment_expression "pcVar15 = do_down" identifier = identifier) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iStackY_c4 = **(int **)(pcVar14 + 0x4eea4);" (assignment_expression "iStackY_c4 = **(int **)(pcVar14 + 0x4eea4)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x4eea4)" * (pointer_expression "*(int **)(pcVar14 + 0x4eea4)" * (cast_expression "(int **)(pcVar14 + 0x4eea4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4eea4)" ( (binary_expression "pcVar14 + 0x4eea4" identifier + number_literal) )))))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e460)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e460)" * (cast_expression "(int **)(pcVar14 + 0x4e460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e460)" ( (binary_expression "pcVar14 + 0x4e460" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(*piVar9 + 0x10);" (assignment_expression "uVar12 = *(undefined4 *)(*piVar9 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(*piVar9 + 0x10)" * (cast_expression "(undefined4 *)(*piVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x10)" ( (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) ;) (expression_statement "psStackY_c0 = &sStackY_94;" (assignment_expression "psStackY_c0 = &sStackY_94" identifier = (pointer_expression "&sStackY_94" & identifier)) ;) (expression_statement "piStackY_bc = piVar7;" (assignment_expression "piStackY_bc = piVar7" identifier = identifier) ;) (expression_statement "uStackY_b8 = uVar10;" (assignment_expression "uStackY_b8 = uVar10" identifier = identifier) ;) (expression_statement "pcStackY_b4 = pcVar15;" (assignment_expression "pcStackY_b4 = pcVar15" identifier = identifier) ;) (expression_statement "get_edge_and_target(&sStackY_cc,&sStackY_c8);" (call_expression "get_edge_and_target(&sStackY_cc,&sStackY_c8)" identifier (argument_list "(&sStackY_cc,&sStackY_c8)" ( (pointer_expression "&sStackY_cc" & identifier) , (pointer_expression "&sStackY_c8" & identifier) ))) ;) (expression_statement "iVar8 = go_forward_chunks(1,(filestruct **)(*piVar9 + 0x10),&sStackY_cc);" (assignment_expression "iVar8 = go_forward_chunks(1,(filestruct **)(*piVar9 + 0x10),&sStackY_cc)" identifier = (call_expression "go_forward_chunks(1,(filestruct **)(*piVar9 + 0x10),&sStackY_cc)" identifier (argument_list "(1,(filestruct **)(*piVar9 + 0x10),&sStackY_cc)" ( number_literal , (cast_expression "(filestruct **)(*piVar9 + 0x10)" ( (type_descriptor "filestruct **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 0x10)" ( (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" * identifier) + number_literal) ))) , (pointer_expression "&sStackY_cc" & identifier) )))) ;) (if_statement "if (iVar8 < 1) {\n      set_proper_index_and_pww(&sStackY_cc,sStackY_c8,true);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(size_t *)(*piVar7 + 0x20) = sStackY_cc + sStackY_c8;\n    }" if (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) (compound_statement "{\n      set_proper_index_and_pww(&sStackY_cc,sStackY_c8,true);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(size_t *)(*piVar7 + 0x20) = sStackY_cc + sStackY_c8;\n    }" { (expression_statement "set_proper_index_and_pww(&sStackY_cc,sStackY_c8,true);" (call_expression "set_proper_index_and_pww(&sStackY_cc,sStackY_c8,true)" identifier (argument_list "(&sStackY_cc,sStackY_c8,true)" ( (pointer_expression "&sStackY_cc" & identifier) , identifier , true ))) ;) (if_statement "if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }" if (parenthesized_expression "((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0))" ( (binary_expression "(*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)" (parenthesized_expression "(*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1)" ( (binary_expression "*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1" (pointer_expression "*(int *)(*piVar9 + 0x24)" * (cast_expression "(int *)(*piVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x24)" ( (binary_expression "*piVar9 + 0x24" (pointer_expression "*piVar9" * identifier) + number_literal) )))) == (binary_expression "**(int **)(pcVar14 + 0x4e2e4) + -1" (pointer_expression "**(int **)(pcVar14 + 0x4e2e4)" * (pointer_expression "*(int **)(pcVar14 + 0x4e2e4)" * (cast_expression "(int **)(pcVar14 + 0x4e2e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e2e4)" ( (binary_expression "pcVar14 + 0x4e2e4" identifier + number_literal) ))))) + number_literal)) )) && (parenthesized_expression "((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)" ( (binary_expression "(**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0" (parenthesized_expression "(**(uint **)(pcVar14 + 0x4e2fc) & 0x4000)" ( (binary_expression "**(uint **)(pcVar14 + 0x4e2fc) & 0x4000" (pointer_expression "**(uint **)(pcVar14 + 0x4e2fc)" * (pointer_expression "*(uint **)(pcVar14 + 0x4e2fc)" * (cast_expression "(uint **)(pcVar14 + 0x4e2fc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e2fc)" ( (binary_expression "pcVar14 + 0x4e2fc" identifier + number_literal) ))))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }" { (expression_statement "(**(code **)(pcVar14 + 0x4e7f8))(1);" (call_expression "(**(code **)(pcVar14 + 0x4e7f8))(1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e7f8))" ( (pointer_expression "**(code **)(pcVar14 + 0x4e7f8)" * (pointer_expression "*(code **)(pcVar14 + 0x4e7f8)" * (cast_expression "(code **)(pcVar14 + 0x4e7f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e7f8)" ( (binary_expression "pcVar14 + 0x4e7f8" identifier + number_literal) ))))) )) (argument_list "(1)" ( number_literal ))) ;) (expression_statement "piVar7 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar7 = *(int **)(pcVar14 + 0x4e460)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e460)" * (cast_expression "(int **)(pcVar14 + 0x4e460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e460)" ( (binary_expression "pcVar14 + 0x4e460" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }" else (compound_statement "{\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);\n        piVar7 = *(int **)(pcVar14 + 0x4e460);\n      }" { (expression_statement "(**(code **)(pcVar14 + 0x4e7d0))(uVar12,1);" (call_expression "(**(code **)(pcVar14 + 0x4e7d0))(uVar12,1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e7d0))" ( (pointer_expression "**(code **)(pcVar14 + 0x4e7d0)" * (pointer_expression "*(code **)(pcVar14 + 0x4e7d0)" * (cast_expression "(code **)(pcVar14 + 0x4e7d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e7d0)" ( (binary_expression "pcVar14 + 0x4e7d0" identifier + number_literal) ))))) )) (argument_list "(uVar12,1)" ( identifier , number_literal ))) ;) (expression_statement "piVar7 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar7 = *(int **)(pcVar14 + 0x4e460)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e460)" * (cast_expression "(int **)(pcVar14 + 0x4e460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e460)" ( (binary_expression "pcVar14 + 0x4e460" identifier + number_literal) ))))) ;) }))) (expression_statement "*(size_t *)(*piVar7 + 0x20) = sStackY_cc + sStackY_c8;" (assignment_expression "*(size_t *)(*piVar7 + 0x20) = sStackY_cc + sStackY_c8" (pointer_expression "*(size_t *)(*piVar7 + 0x20)" * (cast_expression "(size_t *)(*piVar7 + 0x20)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + 0x20)" ( (binary_expression "*piVar7 + 0x20" (pointer_expression "*piVar7" * identifier) + number_literal) )))) = (binary_expression "sStackY_cc + sStackY_c8" identifier + identifier)) ;) })) (if_statement "if (iStackY_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar8 = **(int **)(pcVar14 + 0x4e31c);\n      piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||\n         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)) {\n        if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar7) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }" if (parenthesized_expression "(iStackY_c4 != **(int **)(pcVar14 + 0x4eea4))" ( (binary_expression "iStackY_c4 != **(int **)(pcVar14 + 0x4eea4)" identifier != (pointer_expression "**(int **)(pcVar14 + 0x4eea4)" * (pointer_expression "*(int **)(pcVar14 + 0x4eea4)" * (cast_expression "(int **)(pcVar14 + 0x4eea4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4eea4)" ( (binary_expression "pcVar14 + 0x4eea4" identifier + number_literal) )))))) )) (compound_statement "{\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar8 = **(int **)(pcVar14 + 0x4e31c);\n      piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||\n         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)) {\n        if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar7) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }" { (expression_statement "pcVar14 = *(code **)(pcVar14 + 0x4ee70);" (assignment_expression "pcVar14 = *(code **)(pcVar14 + 0x4ee70)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x4ee70)" * (cast_expression "(code **)(pcVar14 + 0x4ee70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4ee70)" ( (binary_expression "pcVar14 + 0x4ee70" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar8 = **(int **)(pcVar14 + 0x4e31c);" (assignment_expression "iVar8 = **(int **)(pcVar14 + 0x4e31c)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x4e31c)" * (pointer_expression "*(int **)(pcVar14 + 0x4e31c)" * (cast_expression "(int **)(pcVar14 + 0x4e31c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e31c)" ( (binary_expression "pcVar14 + 0x4e31c" identifier + number_literal) )))))) ;) (expression_statement "piVar7 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar7 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||\n         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)) {\n        if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar7) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }" if (parenthesized_expression "((*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||\n         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0))" ( (binary_expression "(*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0) ||\n         (piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)" (parenthesized_expression "(*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar8 + 0xc) + 0xc) != 0" (pointer_expression "*(int *)(*(int *)(iVar8 + 0xc) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar8 + 0xc) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0xc) + 0xc)" ( (binary_expression "*(int *)(iVar8 + 0xc) + 0xc" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0)" ( (comma_expression "piVar7 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar8 + 0x18) != 0" (assignment_expression "piVar7 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar8 + 0x18) != 0" (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n        if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar7) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }" { (if_statement "if (*(int *)(iVar8 + 0x24) == *piVar7 + -1) {\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x24) == *piVar7 + -1)" ( (binary_expression "*(int *)(iVar8 + 0x24) == *piVar7 + -1" (pointer_expression "*(int *)(iVar8 + 0x24)" * (cast_expression "(int *)(iVar8 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) == (binary_expression "*piVar7 + -1" (pointer_expression "*piVar7" * identifier) + number_literal)) )) (compound_statement "{\n          do_up();\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }" { (expression_statement "do_up();" (call_expression "do_up()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar7 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar7 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }" else (compound_statement "{\n          piVar7 = *(int **)(pcVar14 + 0x4e1a0);\n        }" { (expression_statement "piVar7 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar7 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) ;) }))) (if_statement "if (1 < *piVar7) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }" if (parenthesized_expression "(1 < *piVar7)" ( (binary_expression "1 < *piVar7" number_literal < (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }" { (expression_statement "(**(code **)(pcVar14 + 0x4e6b4))(0);" (call_expression "(**(code **)(pcVar14 + 0x4e6b4))(0)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e6b4))" ( (pointer_expression "**(code **)(pcVar14 + 0x4e6b4)" * (pointer_expression "*(code **)(pcVar14 + 0x4e6b4)" * (cast_expression "(code **)(pcVar14 + 0x4e6b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e6b4)" ( (binary_expression "pcVar14 + 0x4e6b4" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) })) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void do_home(void)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int iStack_cc;\n  int iStack_c8;\n  int iStack_c4;\n  int *piStack_c0;\n  int *piStack_bc;\n  undefined4 uStack_b8;\n  code *pcStack_b4;\n  code *pcStack_a0;\n  int iStack_94;\n  int iStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  undefined4 uStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  char cStack_5d;\n  int iStack_5c;\n  uint uStack_58;\n  undefined4 uStack_54;\n  undefined4 uStack_50;\n  undefined *puStack_4c;\n  undefined4 local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  uVar1 = xplustabs();\n  puVar12 = PTR_openfile_0007c6e8;\n  local_20 = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStack_68 = puVar13 + 0x565cc;\n  iStack_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar9 = *(int **)(puVar13 + 0x4e794);\n  uVar2 = *(undefined4 *)(*piVar9 + 0x10);\n  uStack_58 = uVar8;\n  uStack_54 = uVar1;\n  uStack_50 = uVar11;\n  puStack_4c = puVar12;\n  uVar1 = xplustabs();\n  iVar3 = *piVar9;\n  piVar9 = *(int **)(iVar3 + 0x10);\n  uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);\n  if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }\n  iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));\n  if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStack_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStack_a0 = pcVar14 + 0x563d0;\n  iStack_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar10 = *(int **)(pcVar14 + 0x4e598);\n  uVar11 = *(undefined4 *)(*piVar10 + 0x10);\n  iStack_88 = iVar3;\n  piStack_84 = piVar9;\n  uStack_80 = uVar1;\n  pcStack_7c = pcVar15;\n  get_edge_and_target(&iStack_94,&iStack_90);\n  iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);\n  if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }\n  if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void do_home(void)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int iStack_cc;\n  int iStack_c8;\n  int iStack_c4;\n  int *piStack_c0;\n  int *piStack_bc;\n  undefined4 uStack_b8;\n  code *pcStack_b4;\n  code *pcStack_a0;\n  int iStack_94;\n  int iStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  undefined4 uStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  char cStack_5d;\n  int iStack_5c;\n  uint uStack_58;\n  undefined4 uStack_54;\n  undefined4 uStack_50;\n  undefined *puStack_4c;\n  undefined4 local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  uVar1 = xplustabs();\n  puVar12 = PTR_openfile_0007c6e8;\n  local_20 = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStack_68 = puVar13 + 0x565cc;\n  iStack_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar9 = *(int **)(puVar13 + 0x4e794);\n  uVar2 = *(undefined4 *)(*piVar9 + 0x10);\n  uStack_58 = uVar8;\n  uStack_54 = uVar1;\n  uStack_50 = uVar11;\n  puStack_4c = puVar12;\n  uVar1 = xplustabs();\n  iVar3 = *piVar9;\n  piVar9 = *(int **)(iVar3 + 0x10);\n  uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);\n  if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }\n  iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));\n  if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStack_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStack_a0 = pcVar14 + 0x563d0;\n  iStack_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar10 = *(int **)(pcVar14 + 0x4e598);\n  uVar11 = *(undefined4 *)(*piVar10 + 0x10);\n  iStack_88 = iVar3;\n  piStack_84 = piVar9;\n  uStack_80 = uVar1;\n  pcStack_7c = pcVar15;\n  get_edge_and_target(&iStack_94,&iStack_90);\n  iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);\n  if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }\n  if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "do_home(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int iStack_cc;\n  int iStack_c8;\n  int iStack_c4;\n  int *piStack_c0;\n  int *piStack_bc;\n  undefined4 uStack_b8;\n  code *pcStack_b4;\n  code *pcStack_a0;\n  int iStack_94;\n  int iStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  undefined4 uStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  char cStack_5d;\n  int iStack_5c;\n  uint uStack_58;\n  undefined4 uStack_54;\n  undefined4 uStack_50;\n  undefined *puStack_4c;\n  undefined4 local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  uVar1 = xplustabs();\n  puVar12 = PTR_openfile_0007c6e8;\n  local_20 = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStack_68 = puVar13 + 0x565cc;\n  iStack_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar9 = *(int **)(puVar13 + 0x4e794);\n  uVar2 = *(undefined4 *)(*piVar9 + 0x10);\n  uStack_58 = uVar8;\n  uStack_54 = uVar1;\n  uStack_50 = uVar11;\n  puStack_4c = puVar12;\n  uVar1 = xplustabs();\n  iVar3 = *piVar9;\n  piVar9 = *(int **)(iVar3 + 0x10);\n  uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);\n  if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }\n  iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));\n  if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStack_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStack_a0 = pcVar14 + 0x563d0;\n  iStack_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar10 = *(int **)(pcVar14 + 0x4e598);\n  uVar11 = *(undefined4 *)(*piVar10 + 0x10);\n  iStack_88 = iVar3;\n  piStack_84 = piVar9;\n  uStack_80 = uVar1;\n  pcStack_7c = pcVar15;\n  get_edge_and_target(&iStack_94,&iStack_90);\n  iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);\n  if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }\n  if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "int iStack_c4;" primitive_type identifier ;) (declaration "int *piStack_c0;" primitive_type (pointer_declarator "*piStack_c0" * identifier) ;) (declaration "int *piStack_bc;" primitive_type (pointer_declarator "*piStack_bc" * identifier) ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "code *pcStack_b4;" type_identifier (pointer_declarator "*pcStack_b4" * identifier) ;) (declaration "code *pcStack_a0;" type_identifier (pointer_declarator "*pcStack_a0" * identifier) ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "int iStack_88;" primitive_type identifier ;) (declaration "int *piStack_84;" primitive_type (pointer_declarator "*piStack_84" * identifier) ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "code *pcStack_7c;" type_identifier (pointer_declarator "*pcStack_7c" * identifier) ;) (declaration "undefined *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "char cStack_5d;" primitive_type identifier ;) (declaration "int iStack_5c;" primitive_type identifier ;) (declaration "uint uStack_58;" type_identifier identifier ;) (declaration "undefined4 uStack_54;" type_identifier identifier ;) (declaration "undefined4 uStack_50;" type_identifier identifier ;) (declaration "undefined *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_0007d12c;" (assignment_expression "local_1c = *(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 "uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);" (assignment_expression "uVar11 = *(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) ))))) ;) (expression_statement "uVar1 = xplustabs();" (assignment_expression "uVar1 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar12 = PTR_openfile_0007c6e8;" (assignment_expression "puVar12 = PTR_openfile_0007c6e8" identifier = identifier) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\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    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;" if (parenthesized_expression "(-1 < *(int *)PTR_flags_0007c584 << 7)" ( (binary_expression "-1 < *(int *)PTR_flags_0007c584 << 7" number_literal < (binary_expression "*(int *)PTR_flags_0007c584 << 7" (pointer_expression "*(int *)PTR_flags_0007c584" * (cast_expression "(int *)PTR_flags_0007c584" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )) (goto_statement "goto LAB_0002dd70;" goto statement_identifier ;)) (labeled_statement "LAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;" statement_identifier : (expression_statement "puVar12 = PTR_openfile_0007c6e8;" (assignment_expression "puVar12 = PTR_openfile_0007c6e8" identifier = identifier) ;)) (expression_statement "uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier = (call_expression "indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier (argument_list "(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" ( (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 "iVar3 = *(int *)puVar12;" (assignment_expression "iVar3 = *(int *)puVar12" identifier = (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;" if (parenthesized_expression "(*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0')" ( (binary_expression "*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0'" (pointer_expression "*(char *)(**(int **)(iVar3 + 0x10) + uVar4)" * (cast_expression "(char *)(**(int **)(iVar3 + 0x10) + uVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar3 + 0x10) + uVar4)" ( (binary_expression "**(int **)(iVar3 + 0x10) + uVar4" (pointer_expression "**(int **)(iVar3 + 0x10)" * (pointer_expression "*(int **)(iVar3 + 0x10)" * (cast_expression "(int **)(iVar3 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002de5c;" goto statement_identifier ;)) (if_statement "if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }" if (parenthesized_expression "(*(uint *)(iVar3 + 0x1c) == uVar4)" ( (binary_expression "*(uint *)(iVar3 + 0x1c) == uVar4" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }" { (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }" else (compound_statement "{\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }" { (if_statement "if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;" if (parenthesized_expression "(((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8))" ( (binary_expression "((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)" (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) )) && (parenthesized_expression "(uVar4 < uVar8)" ( (binary_expression "uVar4 < uVar8" identifier < identifier) ))) )) (goto_statement "goto LAB_0002de70;" goto statement_identifier ;)) (expression_statement "*(uint *)(iVar3 + 0x1c) = uVar4;" (assignment_expression "*(uint *)(iVar3 + 0x1c) = uVar4" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = identifier) ;) }))) (labeled_statement "LAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;" statement_identifier : (expression_statement "uVar8 = *(uint *)PTR_openfile_0007c6e8;" (assignment_expression "uVar8 = *(uint *)PTR_openfile_0007c6e8" identifier = (pointer_expression "*(uint *)PTR_openfile_0007c6e8" * (cast_expression "(uint *)PTR_openfile_0007c6e8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "uVar2 = xplustabs();" (assignment_expression "uVar2 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(uVar8 + 0x20) = uVar2;" (assignment_expression "*(undefined4 *)(uVar8 + 0x20) = uVar2" (pointer_expression "*(undefined4 *)(uVar8 + 0x20)" * (cast_expression "(undefined4 *)(uVar8 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 0x20)" ( (binary_expression "uVar8 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;" 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) )) (goto_statement "goto LAB_0002dda8;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);" (call_expression "(*(code *)PTR_edit_redraw_0007ca58)(uVar11,1)" (parenthesized_expression "(*(code *)PTR_edit_redraw_0007ca58)" ( (pointer_expression "*(code *)PTR_edit_redraw_0007ca58" * (cast_expression "(code *)PTR_edit_redraw_0007ca58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,1)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }" else (compound_statement "{\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }" { (expression_statement "local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier = (call_expression "leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" identifier (argument_list "(uVar1,*(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) )))) )))) ;) (expression_statement "uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);" (assignment_expression "uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20)" identifier = (call_expression "proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20)" identifier (argument_list "(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20)" ( (pointer_expression "*(undefined4 *)(*(int *)puVar12 + 0x10)" * (cast_expression "(undefined4 *)(*(int *)puVar12 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)puVar12 + 0x10)" ( (binary_expression "*(int *)puVar12 + 0x10" (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) , (pointer_expression "&local_20" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar12 = PTR_openfile_0007c6e8;" (assignment_expression "puVar12 = PTR_openfile_0007c6e8" identifier = identifier) ;) (if_statement "if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;" if (parenthesized_expression "(*(int *)PTR_flags_0007c584 << 7 < 0)" ( (binary_expression "*(int *)PTR_flags_0007c584 << 7 < 0" (binary_expression "*(int *)PTR_flags_0007c584 << 7" (pointer_expression "*(int *)PTR_flags_0007c584" * (cast_expression "(int *)PTR_flags_0007c584" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) < number_literal) )) (goto_statement "goto LAB_0002de94;" goto statement_identifier ;)) (labeled_statement "LAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" statement_identifier : (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\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 "{\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" { (labeled_statement "LAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" * (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) = number_literal) ;)) (goto_statement "goto LAB_0002dd78;" goto statement_identifier ;) }))) (labeled_statement "LAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;" statement_identifier : (expression_statement "iVar3 = *(int *)PTR_openfile_0007c6e8;" (assignment_expression "iVar3 = *(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))) ;)) (if_statement "if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" if (parenthesized_expression "(*(uint *)(iVar3 + 0x1c) == uVar8)" ( (binary_expression "*(uint *)(iVar3 + 0x1c) == uVar8" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" { (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002dd78;" goto statement_identifier ;) })) (expression_statement "*(uint *)(iVar3 + 0x1c) = uVar8;" (assignment_expression "*(uint *)(iVar3 + 0x1c) = uVar8" (pointer_expression "*(uint *)(iVar3 + 0x1c)" * (cast_expression "(uint *)(iVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x20) = local_20;" (assignment_expression "*(undefined4 *)(iVar3 + 0x20) = local_20" (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));" statement_identifier : (expression_statement "iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));" (assignment_expression "iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" identifier = (call_expression "line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" identifier (argument_list "(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" ( identifier , (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20)" * (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x20)" ( (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x20" (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 (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }" { (expression_statement "(*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));" (call_expression "(*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c))" (parenthesized_expression "(*(code *)PTR_update_line_0007ca78)" ( (pointer_expression "*(code *)PTR_update_line_0007ca78" * (cast_expression "(code *)PTR_update_line_0007ca78" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c))" ( (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) )))) , (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" * (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (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) )))) ))) ;) })) }))) (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_0007d12c)" ( (binary_expression "local_1c == *(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;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar13 = PTR___stack_chk_fail_0007d0f8;" (assignment_expression "puVar13 = 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 "()" ( ))) ;) (expression_statement "puStack_68 = puVar13 + 0x565cc;" (assignment_expression "puStack_68 = puVar13 + 0x565cc" identifier = (binary_expression "puVar13 + 0x565cc" identifier + number_literal)) ;) (expression_statement "iStack_5c = **(int **)(puVar13 + 0x4f1d8);" (assignment_expression "iStack_5c = **(int **)(puVar13 + 0x4f1d8)" identifier = (pointer_expression "**(int **)(puVar13 + 0x4f1d8)" * (pointer_expression "*(int **)(puVar13 + 0x4f1d8)" * (cast_expression "(int **)(puVar13 + 0x4f1d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x4f1d8)" ( (binary_expression "puVar13 + 0x4f1d8" identifier + number_literal) )))))) ;) (expression_statement "piVar9 = *(int **)(puVar13 + 0x4e794);" (assignment_expression "piVar9 = *(int **)(puVar13 + 0x4e794)" identifier = (pointer_expression "*(int **)(puVar13 + 0x4e794)" * (cast_expression "(int **)(puVar13 + 0x4e794)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x4e794)" ( (binary_expression "puVar13 + 0x4e794" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined4 *)(*piVar9 + 0x10);" (assignment_expression "uVar2 = *(undefined4 *)(*piVar9 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(*piVar9 + 0x10)" * (cast_expression "(undefined4 *)(*piVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x10)" ( (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) ;) (expression_statement "uStack_58 = uVar8;" (assignment_expression "uStack_58 = uVar8" identifier = identifier) ;) (expression_statement "uStack_54 = uVar1;" (assignment_expression "uStack_54 = uVar1" identifier = identifier) ;) (expression_statement "uStack_50 = uVar11;" (assignment_expression "uStack_50 = uVar11" identifier = identifier) ;) (expression_statement "puStack_4c = puVar12;" (assignment_expression "puStack_4c = puVar12" identifier = identifier) ;) (expression_statement "uVar1 = xplustabs();" (assignment_expression "uVar1 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = *piVar9;" (assignment_expression "iVar3 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "piVar9 = *(int **)(iVar3 + 0x10);" (assignment_expression "piVar9 = *(int **)(iVar3 + 0x10)" identifier = (pointer_expression "*(int **)(iVar3 + 0x10)" * (cast_expression "(int **)(iVar3 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);" (assignment_expression "uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9)" identifier = (call_expression "(**(code **)(puStack_68 + -0x74f0))(*piVar9)" (parenthesized_expression "(**(code **)(puStack_68 + -0x74f0))" ( (pointer_expression "**(code **)(puStack_68 + -0x74f0)" * (pointer_expression "*(code **)(puStack_68 + -0x74f0)" * (cast_expression "(code **)(puStack_68 + -0x74f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x74f0)" ( (binary_expression "puStack_68 + -0x74f0" identifier + number_literal) ))))) )) (argument_list "(*piVar9)" ( (pointer_expression "*piVar9" * identifier) )))) ;) (if_statement "if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }" if (parenthesized_expression "((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0)" ( (binary_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2)" ( (binary_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2" (pointer_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" * (cast_expression "(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_68 + -0x7f9c) + 4)" ( (binary_expression "*(int *)(puStack_68 + -0x7f9c) + 4" (pointer_expression "*(int *)(puStack_68 + -0x7f9c)" * (cast_expression "(int *)(puStack_68 + -0x7f9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_68 + -0x7f9c)" ( (binary_expression "puStack_68 + -0x7f9c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }" { (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = uVar11;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = uVar11" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);" statement_identifier : (expression_statement "iVar3 = **(int **)(puStack_68 + -0x7e38);" (assignment_expression "iVar3 = **(int **)(puStack_68 + -0x7e38)" identifier = (pointer_expression "**(int **)(puStack_68 + -0x7e38)" * (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) )))))) ;)) (expression_statement "uVar11 = xplustabs();" (assignment_expression "uVar11 = xplustabs()" identifier = (call_expression "xplustabs()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x20) = uVar11;" (assignment_expression "*(undefined4 *)(iVar3 + 0x20) = uVar11" (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }" if (parenthesized_expression "((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0)" ( (binary_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2)" ( (binary_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2" (pointer_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" * (cast_expression "(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_68 + -0x7f9c) + 4)" ( (binary_expression "*(int *)(puStack_68 + -0x7f9c) + 4" (pointer_expression "*(int *)(puStack_68 + -0x7f9c)" * (cast_expression "(int *)(puStack_68 + -0x7f9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_68 + -0x7f9c)" ( (binary_expression "puStack_68 + -0x7f9c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }" { (expression_statement "(**(code **)(puStack_68 + -0x7ac8))(uVar2,1);" (call_expression "(**(code **)(puStack_68 + -0x7ac8))(uVar2,1)" (parenthesized_expression "(**(code **)(puStack_68 + -0x7ac8))" ( (pointer_expression "**(code **)(puStack_68 + -0x7ac8)" * (pointer_expression "*(code **)(puStack_68 + -0x7ac8)" * (cast_expression "(code **)(puStack_68 + -0x7ac8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7ac8)" ( (binary_expression "puStack_68 + -0x7ac8" identifier + number_literal) ))))) )) (argument_list "(uVar2,1)" ( identifier , number_literal ))) ;) (goto_statement "goto LAB_0002e03c;" goto statement_identifier ;) })) }) (else_clause "else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }" else (compound_statement "{\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }" { (expression_statement "cStack_5d = '\0';" (assignment_expression "cStack_5d = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar6 = leftedge_for(uVar1,piVar9);" (assignment_expression "uVar6 = leftedge_for(uVar1,piVar9)" identifier = (call_expression "leftedge_for(uVar1,piVar9)" identifier (argument_list "(uVar1,piVar9)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);" (assignment_expression "iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d)" identifier = (call_expression "get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d)" identifier (argument_list "(**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d)" ( (pointer_expression "**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10)" * (pointer_expression "*(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10)" * (cast_expression "(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x10)" ( (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x10" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" * (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) ))))) , identifier , (pointer_expression "&cStack_5d" & identifier) )))) ;) (expression_statement "piVar9 = *(int **)(puStack_68 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(puStack_68 + -0x7e38)" identifier = (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) ))))) ;) (if_statement "if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }" if (parenthesized_expression "(cStack_5d == '\0')" ( (binary_expression "cStack_5d == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar3 = iVar3 + -1;\n    }" { (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) })) (expression_statement "iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);" (assignment_expression "iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3)" identifier = (call_expression "actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3)" identifier (argument_list "(**(undefined4 **)(*piVar9 + 0x10),iVar3)" ( (pointer_expression "**(undefined4 **)(*piVar9 + 0x10)" * (pointer_expression "*(undefined4 **)(*piVar9 + 0x10)" * (cast_expression "(undefined4 **)(*piVar9 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 0x10)" ( (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) , identifier )))) ;) (expression_statement "iVar7 = *piVar9;" (assignment_expression "iVar7 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }" if (parenthesized_expression "(*(int *)(iVar7 + 0x1c) == iVar5)" ( (binary_expression "*(int *)(iVar7 + 0x1c) == iVar5" (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }" { (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" * (cast_expression "(undefined4 *)(iVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0002dfe4;" goto statement_identifier ;) })) (expression_statement "*(int *)(iVar7 + 0x1c) = iVar5;" (assignment_expression "*(int *)(iVar7 + 0x1c) = iVar5" (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar7 + 0x20) = iVar3;" (assignment_expression "*(int *)(iVar7 + 0x20) = iVar3" (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));" (assignment_expression "iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20))" identifier = (call_expression "line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20))" identifier (argument_list "(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20))" ( identifier , (pointer_expression "*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20)" * (cast_expression "(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x20)" ( (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x20" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" * (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) )))) )))) ;) (if_statement "if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }" { (expression_statement "(**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));" (call_expression "(**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c))" (parenthesized_expression "(**(code **)(puStack_68 + -0x7aa8))" ( (pointer_expression "**(code **)(puStack_68 + -0x7aa8)" * (pointer_expression "*(code **)(puStack_68 + -0x7aa8)" * (cast_expression "(code **)(puStack_68 + -0x7aa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7aa8)" ( (binary_expression "puStack_68 + -0x7aa8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c))" ( (pointer_expression "*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10)" * (cast_expression "(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x10)" ( (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x10" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" * (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c)" * (cast_expression "(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x1c)" ( (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x1c" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" * (pointer_expression "*(int **)(puStack_68 + -0x7e38)" * (cast_expression "(int **)(puStack_68 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7e38)" ( (binary_expression "puStack_68 + -0x7e38" identifier + number_literal) ))))) + number_literal) )))) ))) ;) })) (labeled_statement "LAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }" statement_identifier : (if_statement "if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }" if (parenthesized_expression "(iStack_5c == **(int **)(puStack_68 + -0x73f4))" ( (binary_expression "iStack_5c == **(int **)(puStack_68 + -0x73f4)" identifier == (pointer_expression "**(int **)(puStack_68 + -0x73f4)" * (pointer_expression "*(int **)(puStack_68 + -0x73f4)" * (cast_expression "(int **)(puStack_68 + -0x73f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x73f4)" ( (binary_expression "puStack_68 + -0x73f4" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar14 = *(code **)(puStack_68 + -0x7428);" (assignment_expression "pcVar14 = *(code **)(puStack_68 + -0x7428)" identifier = (pointer_expression "*(code **)(puStack_68 + -0x7428)" * (cast_expression "(code **)(puStack_68 + -0x7428)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_68 + -0x7428)" ( (binary_expression "puStack_68 + -0x7428" identifier + number_literal) ))))) ;) (expression_statement "pcVar15 = do_up;" (assignment_expression "pcVar15 = do_up" identifier = identifier) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_a0 = pcVar14 + 0x563d0;" (assignment_expression "pcStack_a0 = pcVar14 + 0x563d0" identifier = (binary_expression "pcVar14 + 0x563d0" identifier + number_literal)) ;) (expression_statement "iStack_8c = **(int **)(pcVar14 + 0x4efdc);" (assignment_expression "iStack_8c = **(int **)(pcVar14 + 0x4efdc)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x4efdc)" * (pointer_expression "*(int **)(pcVar14 + 0x4efdc)" * (cast_expression "(int **)(pcVar14 + 0x4efdc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4efdc)" ( (binary_expression "pcVar14 + 0x4efdc" identifier + number_literal) )))))) ;) (expression_statement "piVar10 = *(int **)(pcVar14 + 0x4e598);" (assignment_expression "piVar10 = *(int **)(pcVar14 + 0x4e598)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e598)" * (cast_expression "(int **)(pcVar14 + 0x4e598)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e598)" ( (binary_expression "pcVar14 + 0x4e598" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined4 *)(*piVar10 + 0x10);" (assignment_expression "uVar11 = *(undefined4 *)(*piVar10 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(*piVar10 + 0x10)" * (cast_expression "(undefined4 *)(*piVar10 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar10 + 0x10)" ( (binary_expression "*piVar10 + 0x10" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "iStack_88 = iVar3;" (assignment_expression "iStack_88 = iVar3" identifier = identifier) ;) (expression_statement "piStack_84 = piVar9;" (assignment_expression "piStack_84 = piVar9" identifier = identifier) ;) (expression_statement "uStack_80 = uVar1;" (assignment_expression "uStack_80 = uVar1" identifier = identifier) ;) (expression_statement "pcStack_7c = pcVar15;" (assignment_expression "pcStack_7c = pcVar15" identifier = identifier) ;) (expression_statement "get_edge_and_target(&iStack_94,&iStack_90);" (call_expression "get_edge_and_target(&iStack_94,&iStack_90)" identifier (argument_list "(&iStack_94,&iStack_90)" ( (pointer_expression "&iStack_94" & identifier) , (pointer_expression "&iStack_90" & identifier) ))) ;) (expression_statement "iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);" (assignment_expression "iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94)" identifier = (call_expression "go_back_chunks(1,*piVar10 + 0x10,&iStack_94)" identifier (argument_list "(1,*piVar10 + 0x10,&iStack_94)" ( number_literal , (binary_expression "*piVar10 + 0x10" (pointer_expression "*piVar10" * identifier) + number_literal) , (pointer_expression "&iStack_94" & identifier) )))) ;) (if_statement "if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }" if (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) (compound_statement "{\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }" { (expression_statement "set_proper_index_and_pww(&iStack_94,iStack_90,0);" (call_expression "set_proper_index_and_pww(&iStack_94,iStack_90,0)" identifier (argument_list "(&iStack_94,iStack_90,0)" ( (pointer_expression "&iStack_94" & identifier) , identifier , number_literal ))) ;) (if_statement "if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" if (parenthesized_expression "((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0))" ( (binary_expression "(*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)" (parenthesized_expression "(*(int *)(*piVar10 + 0x24) == 0)" ( (binary_expression "*(int *)(*piVar10 + 0x24) == 0" (pointer_expression "*(int *)(*piVar10 + 0x24)" * (cast_expression "(int *)(*piVar10 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar10 + 0x24)" ( (binary_expression "*piVar10 + 0x24" (pointer_expression "*piVar10" * identifier) + number_literal) )))) == number_literal) )) && (parenthesized_expression "((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)" ( (binary_expression "(**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0" (parenthesized_expression "(**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000)" ( (binary_expression "**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000" (pointer_expression "**(uint **)(pcStack_a0 + -0x7f9c)" * (pointer_expression "*(uint **)(pcStack_a0 + -0x7f9c)" * (cast_expression "(uint **)(pcStack_a0 + -0x7f9c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7f9c)" ( (binary_expression "pcStack_a0 + -0x7f9c" identifier + number_literal) ))))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" { (expression_statement "(**(code **)(pcStack_a0 + -0x7aa0))(0);" (call_expression "(**(code **)(pcStack_a0 + -0x7aa0))(0)" (parenthesized_expression "(**(code **)(pcStack_a0 + -0x7aa0))" ( (pointer_expression "**(code **)(pcStack_a0 + -0x7aa0)" * (pointer_expression "*(code **)(pcStack_a0 + -0x7aa0)" * (cast_expression "(code **)(pcStack_a0 + -0x7aa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7aa0)" ( (binary_expression "pcStack_a0 + -0x7aa0" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "piVar9 = *(int **)(pcStack_a0 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(pcStack_a0 + -0x7e38)" identifier = (pointer_expression "*(int **)(pcStack_a0 + -0x7e38)" * (cast_expression "(int **)(pcStack_a0 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7e38)" ( (binary_expression "pcStack_a0 + -0x7e38" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" else (compound_statement "{\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" { (expression_statement "(**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);" (call_expression "(**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1)" (parenthesized_expression "(**(code **)(pcStack_a0 + -0x7ac8))" ( (pointer_expression "**(code **)(pcStack_a0 + -0x7ac8)" * (pointer_expression "*(code **)(pcStack_a0 + -0x7ac8)" * (cast_expression "(code **)(pcStack_a0 + -0x7ac8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7ac8)" ( (binary_expression "pcStack_a0 + -0x7ac8" identifier + number_literal) ))))) )) (argument_list "(uVar11,1)" ( identifier , number_literal ))) ;) (expression_statement "piVar9 = *(int **)(pcStack_a0 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(pcStack_a0 + -0x7e38)" identifier = (pointer_expression "*(int **)(pcStack_a0 + -0x7e38)" * (cast_expression "(int **)(pcStack_a0 + -0x7e38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7e38)" ( (binary_expression "pcStack_a0 + -0x7e38" identifier + number_literal) ))))) ;) }))) (expression_statement "*(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;" (assignment_expression "*(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90" (pointer_expression "*(int *)(*piVar9 + 0x20)" * (cast_expression "(int *)(*piVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x20)" ( (binary_expression "*piVar9 + 0x20" (pointer_expression "*piVar9" * identifier) + number_literal) )))) = (binary_expression "iStack_94 + iStack_90" identifier + identifier)) ;) })) (if_statement "if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "(iStack_8c != **(int **)(pcStack_a0 + -0x73f4))" ( (binary_expression "iStack_8c != **(int **)(pcStack_a0 + -0x73f4)" identifier != (pointer_expression "**(int **)(pcStack_a0 + -0x73f4)" * (pointer_expression "*(int **)(pcStack_a0 + -0x73f4)" * (cast_expression "(int **)(pcStack_a0 + -0x73f4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x73f4)" ( (binary_expression "pcStack_a0 + -0x73f4" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }" { (expression_statement "pcVar14 = *(code **)(pcStack_a0 + -0x7428);" (assignment_expression "pcVar14 = *(code **)(pcStack_a0 + -0x7428)" identifier = (pointer_expression "*(code **)(pcStack_a0 + -0x7428)" * (cast_expression "(code **)(pcStack_a0 + -0x7428)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_a0 + -0x7428)" ( (binary_expression "pcStack_a0 + -0x7428" identifier + number_literal) ))))) ;) (expression_statement "pcVar15 = do_down;" (assignment_expression "pcVar15 = do_down" identifier = identifier) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_c4 = **(int **)(pcVar14 + 0x4eea4);" (assignment_expression "iStack_c4 = **(int **)(pcVar14 + 0x4eea4)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x4eea4)" * (pointer_expression "*(int **)(pcVar14 + 0x4eea4)" * (cast_expression "(int **)(pcVar14 + 0x4eea4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4eea4)" ( (binary_expression "pcVar14 + 0x4eea4" identifier + number_literal) )))))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e460)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e460)" * (cast_expression "(int **)(pcVar14 + 0x4e460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e460)" ( (binary_expression "pcVar14 + 0x4e460" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(undefined4 *)(*piVar9 + 0x10);" (assignment_expression "uVar1 = *(undefined4 *)(*piVar9 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(*piVar9 + 0x10)" * (cast_expression "(undefined4 *)(*piVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x10)" ( (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) ;) (expression_statement "piStack_c0 = &iStack_94;" (assignment_expression "piStack_c0 = &iStack_94" identifier = (pointer_expression "&iStack_94" & identifier)) ;) (expression_statement "piStack_bc = piVar10;" (assignment_expression "piStack_bc = piVar10" identifier = identifier) ;) (expression_statement "uStack_b8 = uVar11;" (assignment_expression "uStack_b8 = uVar11" identifier = identifier) ;) (expression_statement "pcStack_b4 = pcVar15;" (assignment_expression "pcStack_b4 = pcVar15" identifier = identifier) ;) (expression_statement "get_edge_and_target(&iStack_cc,&iStack_c8);" (call_expression "get_edge_and_target(&iStack_cc,&iStack_c8)" identifier (argument_list "(&iStack_cc,&iStack_c8)" ( (pointer_expression "&iStack_cc" & identifier) , (pointer_expression "&iStack_c8" & identifier) ))) ;) (expression_statement "iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);" (assignment_expression "iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc)" identifier = (call_expression "go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc)" identifier (argument_list "(1,*piVar9 + 0x10,&iStack_cc)" ( number_literal , (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" * identifier) + number_literal) , (pointer_expression "&iStack_cc" & identifier) )))) ;) (if_statement "if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }" if (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) (compound_statement "{\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }" { (expression_statement "set_proper_index_and_pww(&iStack_cc,iStack_c8,1);" (call_expression "set_proper_index_and_pww(&iStack_cc,iStack_c8,1)" identifier (argument_list "(&iStack_cc,iStack_c8,1)" ( (pointer_expression "&iStack_cc" & identifier) , identifier , number_literal ))) ;) (if_statement "if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" if (parenthesized_expression "((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0))" ( (binary_expression "(*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)" (parenthesized_expression "(*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1)" ( (binary_expression "*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1" (pointer_expression "*(int *)(*piVar9 + 0x24)" * (cast_expression "(int *)(*piVar9 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x24)" ( (binary_expression "*piVar9 + 0x24" (pointer_expression "*piVar9" * identifier) + number_literal) )))) == (binary_expression "**(int **)(pcVar14 + 0x4e2e4) + -1" (pointer_expression "**(int **)(pcVar14 + 0x4e2e4)" * (pointer_expression "*(int **)(pcVar14 + 0x4e2e4)" * (cast_expression "(int **)(pcVar14 + 0x4e2e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e2e4)" ( (binary_expression "pcVar14 + 0x4e2e4" identifier + number_literal) ))))) + number_literal)) )) && (parenthesized_expression "((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)" ( (binary_expression "(**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0" (parenthesized_expression "(**(uint **)(pcVar14 + 0x4e2fc) & 0x4000)" ( (binary_expression "**(uint **)(pcVar14 + 0x4e2fc) & 0x4000" (pointer_expression "**(uint **)(pcVar14 + 0x4e2fc)" * (pointer_expression "*(uint **)(pcVar14 + 0x4e2fc)" * (cast_expression "(uint **)(pcVar14 + 0x4e2fc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e2fc)" ( (binary_expression "pcVar14 + 0x4e2fc" identifier + number_literal) ))))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" { (expression_statement "(**(code **)(pcVar14 + 0x4e7f8))(1);" (call_expression "(**(code **)(pcVar14 + 0x4e7f8))(1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e7f8))" ( (pointer_expression "**(code **)(pcVar14 + 0x4e7f8)" * (pointer_expression "*(code **)(pcVar14 + 0x4e7f8)" * (cast_expression "(code **)(pcVar14 + 0x4e7f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e7f8)" ( (binary_expression "pcVar14 + 0x4e7f8" identifier + number_literal) ))))) )) (argument_list "(1)" ( number_literal ))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e460)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e460)" * (cast_expression "(int **)(pcVar14 + 0x4e460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e460)" ( (binary_expression "pcVar14 + 0x4e460" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" else (compound_statement "{\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" { (expression_statement "(**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);" (call_expression "(**(code **)(pcVar14 + 0x4e7d0))(uVar1,1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e7d0))" ( (pointer_expression "**(code **)(pcVar14 + 0x4e7d0)" * (pointer_expression "*(code **)(pcVar14 + 0x4e7d0)" * (cast_expression "(code **)(pcVar14 + 0x4e7d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e7d0)" ( (binary_expression "pcVar14 + 0x4e7d0" identifier + number_literal) ))))) )) (argument_list "(uVar1,1)" ( identifier , number_literal ))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e460)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e460)" * (cast_expression "(int **)(pcVar14 + 0x4e460)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e460)" ( (binary_expression "pcVar14 + 0x4e460" identifier + number_literal) ))))) ;) }))) (expression_statement "*(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;" (assignment_expression "*(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8" (pointer_expression "*(int *)(*piVar9 + 0x20)" * (cast_expression "(int *)(*piVar9 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar9 + 0x20)" ( (binary_expression "*piVar9 + 0x20" (pointer_expression "*piVar9" * identifier) + number_literal) )))) = (binary_expression "iStack_cc + iStack_c8" identifier + identifier)) ;) })) (if_statement "if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }" if (parenthesized_expression "(iStack_c4 != **(int **)(pcVar14 + 0x4eea4))" ( (binary_expression "iStack_c4 != **(int **)(pcVar14 + 0x4eea4)" identifier != (pointer_expression "**(int **)(pcVar14 + 0x4eea4)" * (pointer_expression "*(int **)(pcVar14 + 0x4eea4)" * (cast_expression "(int **)(pcVar14 + 0x4eea4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4eea4)" ( (binary_expression "pcVar14 + 0x4eea4" identifier + number_literal) )))))) )) (compound_statement "{\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }" { (expression_statement "pcVar14 = *(code **)(pcVar14 + 0x4ee70);" (assignment_expression "pcVar14 = *(code **)(pcVar14 + 0x4ee70)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x4ee70)" * (cast_expression "(code **)(pcVar14 + 0x4ee70)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4ee70)" ( (binary_expression "pcVar14 + 0x4ee70" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = **(int **)(pcVar14 + 0x4e31c);" (assignment_expression "iVar3 = **(int **)(pcVar14 + 0x4e31c)" identifier = (pointer_expression "**(int **)(pcVar14 + 0x4e31c)" * (pointer_expression "*(int **)(pcVar14 + 0x4e31c)" * (cast_expression "(int **)(pcVar14 + 0x4e31c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e31c)" ( (binary_expression "pcVar14 + 0x4e31c" identifier + number_literal) )))))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }" if (parenthesized_expression "((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0))" ( (binary_expression "(*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)" (parenthesized_expression "(*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0)" ( (binary_expression "*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0" (pointer_expression "*(int *)(*(int *)(iVar3 + 0xc) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar3 + 0xc) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0xc)" ( (binary_expression "*(int *)(iVar3 + 0xc) + 0xc" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)" ( (comma_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar3 + 0x18) != 0" (pointer_expression "*(int *)(iVar3 + 0x18)" * (cast_expression "(int *)(iVar3 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18)" ( (binary_expression "iVar3 + 0x18" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }" { (if_statement "if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" if (parenthesized_expression "(*(int *)(iVar3 + 0x24) == *piVar9 + -1)" ( (binary_expression "*(int *)(iVar3 + 0x24) == *piVar9 + -1" (pointer_expression "*(int *)(iVar3 + 0x24)" * (cast_expression "(int *)(iVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) )))) == (binary_expression "*piVar9 + -1" (pointer_expression "*piVar9" * identifier) + number_literal)) )) (compound_statement "{\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" { (expression_statement "do_up();" (call_expression "do_up()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" else (compound_statement "{\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" { (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" identifier = (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" * (cast_expression "(int **)(pcVar14 + 0x4e1a0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e1a0)" ( (binary_expression "pcVar14 + 0x4e1a0" identifier + number_literal) ))))) ;) }))) (if_statement "if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }" if (parenthesized_expression "(1 < *piVar9)" ( (binary_expression "1 < *piVar9" number_literal < (pointer_expression "*piVar9" * identifier)) )) (compound_statement "{\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }" { (expression_statement "(**(code **)(pcVar14 + 0x4e6b4))(0);" (call_expression "(**(code **)(pcVar14 + 0x4e6b4))(0)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e6b4))" ( (pointer_expression "**(code **)(pcVar14 + 0x4e6b4)" * (pointer_expression "*(code **)(pcVar14 + 0x4e6b4)" * (cast_expression "(code **)(pcVar14 + 0x4e6b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x4e6b4)" ( (binary_expression "pcVar14 + 0x4e6b4" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) })) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 = (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) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + IDENT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (labeled_statement statement_identifier : (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 ( )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (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) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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) )))) , (pointer_expression & IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 { (labeled_statement statement_identifier : (expression_statement (assignment_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) )))) = LIT) ;)) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (labeled_statement statement_identifier : (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 IDENT != LIT) )) (compound_statement { (expression_statement (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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) , (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 IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression (pointer_expression * IDENT) + LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , 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 (pointer_expression * IDENT) + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = (binary_expression IDENT + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression (pointer_expression * IDENT) + LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , 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 (pointer_expression * IDENT) + LIT) )))) == (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = (binary_expression IDENT + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (binary_expression (pointer_expression * IDENT) + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) })) })) (return_statement return ;) })) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void do_home(void)\n\n{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int iStack_cc;\n  int iStack_c8;\n  int iStack_c4;\n  int *piStack_c0;\n  int *piStack_bc;\n  undefined4 uStack_b8;\n  code *pcStack_b4;\n  code *pcStack_a0;\n  int iStack_94;\n  int iStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  undefined4 uStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  char cStack_5d;\n  int iStack_5c;\n  uint uStack_58;\n  undefined4 uStack_54;\n  undefined4 uStack_50;\n  undefined *puStack_4c;\n  undefined4 local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  uVar1 = xplustabs();\n  puVar12 = PTR_openfile_0007c6e8;\n  local_20 = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStack_68 = puVar13 + 0x565cc;\n  iStack_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar9 = *(int **)(puVar13 + 0x4e794);\n  uVar2 = *(undefined4 *)(*piVar9 + 0x10);\n  uStack_58 = uVar8;\n  uStack_54 = uVar1;\n  uStack_50 = uVar11;\n  puStack_4c = puVar12;\n  uVar1 = xplustabs();\n  iVar3 = *piVar9;\n  piVar9 = *(int **)(iVar3 + 0x10);\n  uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);\n  if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }\n  iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));\n  if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStack_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStack_a0 = pcVar14 + 0x563d0;\n  iStack_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar10 = *(int **)(pcVar14 + 0x4e598);\n  uVar11 = *(undefined4 *)(*piVar10 + 0x10);\n  iStack_88 = iVar3;\n  piStack_84 = piVar9;\n  uStack_80 = uVar1;\n  pcStack_7c = pcVar15;\n  get_edge_and_target(&iStack_94,&iStack_90);\n  iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);\n  if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }\n  if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "do_home(void)" (identifier "do_home") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  undefined4 uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  int iStack_cc;\n  int iStack_c8;\n  int iStack_c4;\n  int *piStack_c0;\n  int *piStack_bc;\n  undefined4 uStack_b8;\n  code *pcStack_b4;\n  code *pcStack_a0;\n  int iStack_94;\n  int iStack_90;\n  int iStack_8c;\n  int iStack_88;\n  int *piStack_84;\n  undefined4 uStack_80;\n  code *pcStack_7c;\n  undefined *puStack_68;\n  char cStack_5d;\n  int iStack_5c;\n  uint uStack_58;\n  undefined4 uStack_54;\n  undefined4 uStack_50;\n  undefined *puStack_4c;\n  undefined4 local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;\n  uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);\n  uVar1 = xplustabs();\n  puVar12 = PTR_openfile_0007c6e8;\n  local_20 = 0;\n  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }\n  puVar13 = PTR___stack_chk_fail_0007d0f8;\n  (*(code *)PTR___stack_chk_fail_0007d0f8)();\n  puStack_68 = puVar13 + 0x565cc;\n  iStack_5c = **(int **)(puVar13 + 0x4f1d8);\n  piVar9 = *(int **)(puVar13 + 0x4e794);\n  uVar2 = *(undefined4 *)(*piVar9 + 0x10);\n  uStack_58 = uVar8;\n  uStack_54 = uVar1;\n  uStack_50 = uVar11;\n  puStack_4c = puVar12;\n  uVar1 = xplustabs();\n  iVar3 = *piVar9;\n  piVar9 = *(int **)(iVar3 + 0x10);\n  uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);\n  if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }\n  iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));\n  if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }\nLAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }\n  pcVar14 = *(code **)(puStack_68 + -0x7428);\n  pcVar15 = do_up;\n  (*pcVar14)();\n  pcStack_a0 = pcVar14 + 0x563d0;\n  iStack_8c = **(int **)(pcVar14 + 0x4efdc);\n  piVar10 = *(int **)(pcVar14 + 0x4e598);\n  uVar11 = *(undefined4 *)(*piVar10 + 0x10);\n  iStack_88 = iVar3;\n  piStack_84 = piVar9;\n  uStack_80 = uVar1;\n  pcStack_7c = pcVar15;\n  get_edge_and_target(&iStack_94,&iStack_90);\n  iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);\n  if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }\n  if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "code *pcVar15;" (type_identifier "code") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "int iStack_cc;" (primitive_type "int") (identifier "iStack_cc") (; ";")) (declaration "int iStack_c8;" (primitive_type "int") (identifier "iStack_c8") (; ";")) (declaration "int iStack_c4;" (primitive_type "int") (identifier "iStack_c4") (; ";")) (declaration "int *piStack_c0;" (primitive_type "int") (pointer_declarator "*piStack_c0" (* "*") (identifier "piStack_c0")) (; ";")) (declaration "int *piStack_bc;" (primitive_type "int") (pointer_declarator "*piStack_bc" (* "*") (identifier "piStack_bc")) (; ";")) (declaration "undefined4 uStack_b8;" (type_identifier "undefined4") (identifier "uStack_b8") (; ";")) (declaration "code *pcStack_b4;" (type_identifier "code") (pointer_declarator "*pcStack_b4" (* "*") (identifier "pcStack_b4")) (; ";")) (declaration "code *pcStack_a0;" (type_identifier "code") (pointer_declarator "*pcStack_a0" (* "*") (identifier "pcStack_a0")) (; ";")) (declaration "int iStack_94;" (primitive_type "int") (identifier "iStack_94") (; ";")) (declaration "int iStack_90;" (primitive_type "int") (identifier "iStack_90") (; ";")) (declaration "int iStack_8c;" (primitive_type "int") (identifier "iStack_8c") (; ";")) (declaration "int iStack_88;" (primitive_type "int") (identifier "iStack_88") (; ";")) (declaration "int *piStack_84;" (primitive_type "int") (pointer_declarator "*piStack_84" (* "*") (identifier "piStack_84")) (; ";")) (declaration "undefined4 uStack_80;" (type_identifier "undefined4") (identifier "uStack_80") (; ";")) (declaration "code *pcStack_7c;" (type_identifier "code") (pointer_declarator "*pcStack_7c" (* "*") (identifier "pcStack_7c")) (; ";")) (declaration "undefined *puStack_68;" (type_identifier "undefined") (pointer_declarator "*puStack_68" (* "*") (identifier "puStack_68")) (; ";")) (declaration "char cStack_5d;" (primitive_type "char") (identifier "cStack_5d") (; ";")) (declaration "int iStack_5c;" (primitive_type "int") (identifier "iStack_5c") (; ";")) (declaration "uint uStack_58;" (type_identifier "uint") (identifier "uStack_58") (; ";")) (declaration "undefined4 uStack_54;" (type_identifier "undefined4") (identifier "uStack_54") (; ";")) (declaration "undefined4 uStack_50;" (type_identifier "undefined4") (identifier "uStack_50") (; ";")) (declaration "undefined *puStack_4c;" (type_identifier "undefined") (pointer_declarator "*puStack_4c" (* "*") (identifier "puStack_4c")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_0007d12c;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_0007d12c" (identifier "local_1c") (= "=") (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 "uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);" (assignment_expression "uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10)" (identifier "uVar11") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "uVar1 = xplustabs();" (assignment_expression "uVar1 = xplustabs()" (identifier "uVar1") (= "=") (call_expression "xplustabs()" (identifier "xplustabs") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar12 = PTR_openfile_0007c6e8;" (assignment_expression "puVar12 = PTR_openfile_0007c6e8" (identifier "puVar12") (= "=") (identifier "PTR_openfile_0007c6e8")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\n    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }\n  else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\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    uVar8 = 0;\n    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;\nLAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;\n    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    iVar3 = *(int *)puVar12;\n    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;\n    if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }\nLAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;\n    uVar2 = xplustabs();\n    *(undefined4 *)(uVar8 + 0x20) = uVar2;\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;\n    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);\n  }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;" (if "if") (parenthesized_expression "(-1 < *(int *)PTR_flags_0007c584 << 7)" (( "(") (binary_expression "-1 < *(int *)PTR_flags_0007c584 << 7" (number_literal "-1") (< "<") (binary_expression "*(int *)PTR_flags_0007c584 << 7" (pointer_expression "*(int *)PTR_flags_0007c584" (* "*") (cast_expression "(int *)PTR_flags_0007c584" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_flags_0007c584"))) (<< "<<") (number_literal "7"))) () ")")) (goto_statement "goto LAB_0002dd70;" (goto "goto") (statement_identifier "LAB_0002dd70") (; ";"))) (labeled_statement "LAB_0002de94:\n    puVar12 = PTR_openfile_0007c6e8;" (statement_identifier "LAB_0002de94") (: ":") (expression_statement "puVar12 = PTR_openfile_0007c6e8;" (assignment_expression "puVar12 = PTR_openfile_0007c6e8" (identifier "puVar12") (= "=") (identifier "PTR_openfile_0007c6e8")) (; ";"))) (expression_statement "uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" (identifier "uVar4") (= "=") (call_expression "indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" (identifier "indent_length") (argument_list "(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10))" (( "(") (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 "iVar3 = *(int *)puVar12;" (assignment_expression "iVar3 = *(int *)puVar12" (identifier "iVar3") (= "=") (pointer_expression "*(int *)puVar12" (* "*") (cast_expression "(int *)puVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12")))) (; ";")) (if_statement "if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;" (if "if") (parenthesized_expression "(*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0')" (( "(") (binary_expression "*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0'" (pointer_expression "*(char *)(**(int **)(iVar3 + 0x10) + uVar4)" (* "*") (cast_expression "(char *)(**(int **)(iVar3 + 0x10) + uVar4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(iVar3 + 0x10) + uVar4)" (( "(") (binary_expression "**(int **)(iVar3 + 0x10) + uVar4" (pointer_expression "**(int **)(iVar3 + 0x10)" (* "*") (pointer_expression "*(int **)(iVar3 + 0x10)" (* "*") (cast_expression "(int **)(iVar3 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (identifier "uVar4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0002de5c;" (goto "goto") (statement_identifier "LAB_0002de5c") (; ";"))) (if_statement "if (*(uint *)(iVar3 + 0x1c) == uVar4) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }\n    else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }" (if "if") (parenthesized_expression "(*(uint *)(iVar3 + 0x1c) == uVar4)" (( "(") (binary_expression "*(uint *)(iVar3 + 0x1c) == uVar4" (pointer_expression "*(uint *)(iVar3 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (identifier "uVar4")) () ")")) (compound_statement "{\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }" (else "else") (compound_statement "{\n      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;\n      *(uint *)(iVar3 + 0x1c) = uVar4;\n    }" ({ "{") (if_statement "if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;" (if "if") (parenthesized_expression "(((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8))" (( "(") (binary_expression "((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)" (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")) () ")")) (&& "&&") (parenthesized_expression "(uVar4 < uVar8)" (( "(") (binary_expression "uVar4 < uVar8" (identifier "uVar4") (< "<") (identifier "uVar8")) () ")"))) () ")")) (goto_statement "goto LAB_0002de70;" (goto "goto") (statement_identifier "LAB_0002de70") (; ";"))) (expression_statement "*(uint *)(iVar3 + 0x1c) = uVar4;" (assignment_expression "*(uint *)(iVar3 + 0x1c) = uVar4" (pointer_expression "*(uint *)(iVar3 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (} "}")))) (labeled_statement "LAB_0002dd78:\n    uVar8 = *(uint *)PTR_openfile_0007c6e8;" (statement_identifier "LAB_0002dd78") (: ":") (expression_statement "uVar8 = *(uint *)PTR_openfile_0007c6e8;" (assignment_expression "uVar8 = *(uint *)PTR_openfile_0007c6e8" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)PTR_openfile_0007c6e8" (* "*") (cast_expression "(uint *)PTR_openfile_0007c6e8" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_openfile_0007c6e8")))) (; ";"))) (expression_statement "uVar2 = xplustabs();" (assignment_expression "uVar2 = xplustabs()" (identifier "uVar2") (= "=") (call_expression "xplustabs()" (identifier "xplustabs") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(uVar8 + 0x20) = uVar2;" (assignment_expression "*(undefined4 *)(uVar8 + 0x20) = uVar2" (pointer_expression "*(undefined4 *)(uVar8 + 0x20)" (* "*") (cast_expression "(undefined4 *)(uVar8 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 0x20)" (( "(") (binary_expression "uVar8 + 0x20" (identifier "uVar8") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;" (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")) () ")")) (goto_statement "goto LAB_0002dda8;" (goto "goto") (statement_identifier "LAB_0002dda8") (; ";"))) (expression_statement "(*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);" (call_expression "(*(code *)PTR_edit_redraw_0007ca58)(uVar11,1)" (parenthesized_expression "(*(code *)PTR_edit_redraw_0007ca58)" (( "(") (pointer_expression "*(code *)PTR_edit_redraw_0007ca58" (* "*") (cast_expression "(code *)PTR_edit_redraw_0007ca58" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_edit_redraw_0007ca58"))) () ")")) (argument_list "(uVar11,1)" (( "(") (identifier "uVar11") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }" (else "else") (compound_statement "{\n    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));\n    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);\n    puVar12 = PTR_openfile_0007c6e8;\n    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;\nLAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\nLAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;\n    if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }\n    *(uint *)(iVar3 + 0x1c) = uVar8;\n    *(undefined4 *)(iVar3 + 0x20) = local_20;\nLAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));\n    if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }\n  }" ({ "{") (expression_statement "local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));" (assignment_expression "local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" (identifier "local_20") (= "=") (call_expression "leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" (identifier "leftedge_for") (argument_list "(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10))" (( "(") (identifier "uVar1") (, ",") (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")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);" (assignment_expression "uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20)" (identifier "uVar8") (= "=") (call_expression "proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20)" (identifier "proper_x") (argument_list "(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)puVar12 + 0x10)" (* "*") (cast_expression "(undefined4 *)(*(int *)puVar12 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)puVar12 + 0x10)" (( "(") (binary_expression "*(int *)puVar12 + 0x10" (pointer_expression "*(int *)puVar12" (* "*") (cast_expression "(int *)puVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "&local_20" (& "&") (identifier "local_20")) (, ",") (number_literal "0") (, ",") (identifier "local_20") () ")")))) (; ";")) (expression_statement "puVar12 = PTR_openfile_0007c6e8;" (assignment_expression "puVar12 = PTR_openfile_0007c6e8" (identifier "puVar12") (= "=") (identifier "PTR_openfile_0007c6e8")) (; ";")) (if_statement "if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;" (if "if") (parenthesized_expression "(*(int *)PTR_flags_0007c584 << 7 < 0)" (( "(") (binary_expression "*(int *)PTR_flags_0007c584 << 7 < 0" (binary_expression "*(int *)PTR_flags_0007c584 << 7" (pointer_expression "*(int *)PTR_flags_0007c584" (* "*") (cast_expression "(int *)PTR_flags_0007c584" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_flags_0007c584"))) (<< "<<") (number_literal "7")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002de94;" (goto "goto") (statement_identifier "LAB_0002de94") (; ";"))) (labeled_statement "LAB_0002de5c:\n    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" (statement_identifier "LAB_0002de5c") (: ":") (if_statement "if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\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 "{\nLAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" ({ "{") (labeled_statement "LAB_0002dd70:\n      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;" (statement_identifier "LAB_0002dd70") (: ":") (expression_statement "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_0002dd78;" (goto "goto") (statement_identifier "LAB_0002dd78") (; ";")) (} "}")))) (labeled_statement "LAB_0002de70:\n    iVar3 = *(int *)PTR_openfile_0007c6e8;" (statement_identifier "LAB_0002de70") (: ":") (expression_statement "iVar3 = *(int *)PTR_openfile_0007c6e8;" (assignment_expression "iVar3 = *(int *)PTR_openfile_0007c6e8" (identifier "iVar3") (= "=") (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")))) (; ";"))) (if_statement "if (*(uint *)(iVar3 + 0x1c) == uVar8) {\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" (if "if") (parenthesized_expression "(*(uint *)(iVar3 + 0x1c) == uVar8)" (( "(") (binary_expression "*(uint *)(iVar3 + 0x1c) == uVar8" (pointer_expression "*(uint *)(iVar3 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (identifier "uVar8")) () ")")) (compound_statement "{\n      *(undefined4 *)(iVar3 + 0x1c) = 0;\n      goto LAB_0002dd78;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002dd78;" (goto "goto") (statement_identifier "LAB_0002dd78") (; ";")) (} "}"))) (expression_statement "*(uint *)(iVar3 + 0x1c) = uVar8;" (assignment_expression "*(uint *)(iVar3 + 0x1c) = uVar8" (pointer_expression "*(uint *)(iVar3 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar3 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x20) = local_20;" (assignment_expression "*(undefined4 *)(iVar3 + 0x20) = local_20" (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x20)" (( "(") (binary_expression "iVar3 + 0x20" (identifier "iVar3") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "local_20")) (; ";")) (labeled_statement "LAB_0002dda8:\n    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));" (statement_identifier "LAB_0002dda8") (: ":") (expression_statement "iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));" (assignment_expression "iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" (identifier "iVar3") (= "=") (call_expression "line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" (identifier "line_needs_update") (argument_list "(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20))" (( "(") (identifier "uVar1") (, ",") (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20)" (* "*") (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_openfile_0007c6e8 + 0x20)" (( "(") (binary_expression "*(int *)PTR_openfile_0007c6e8 + 0x20" (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 "0x20")) () ")")))) () ")")))) (; ";"))) (if_statement "if (iVar3 != 0) {\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));\n    }" ({ "{") (expression_statement "(*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));" (call_expression "(*(code *)PTR_update_line_0007ca78)\n                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c))" (parenthesized_expression "(*(code *)PTR_update_line_0007ca78)" (( "(") (pointer_expression "*(code *)PTR_update_line_0007ca78" (* "*") (cast_expression "(code *)PTR_update_line_0007ca78" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_update_line_0007ca78"))) () ")")) (argument_list "(*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),\n                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c))" (( "(") (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")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (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")) () ")")))) () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_0007d12c)" (( "(") (binary_expression "local_1c == *(int *)PTR___stack_chk_guard_0007d12c" (identifier "local_1c") (== "==") (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;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar13 = PTR___stack_chk_fail_0007d0f8;" (assignment_expression "puVar13 = PTR___stack_chk_fail_0007d0f8" (identifier "puVar13") (= "=") (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 "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_68 = puVar13 + 0x565cc;" (assignment_expression "puStack_68 = puVar13 + 0x565cc" (identifier "puStack_68") (= "=") (binary_expression "puVar13 + 0x565cc" (identifier "puVar13") (+ "+") (number_literal "0x565cc"))) (; ";")) (expression_statement "iStack_5c = **(int **)(puVar13 + 0x4f1d8);" (assignment_expression "iStack_5c = **(int **)(puVar13 + 0x4f1d8)" (identifier "iStack_5c") (= "=") (pointer_expression "**(int **)(puVar13 + 0x4f1d8)" (* "*") (pointer_expression "*(int **)(puVar13 + 0x4f1d8)" (* "*") (cast_expression "(int **)(puVar13 + 0x4f1d8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x4f1d8)" (( "(") (binary_expression "puVar13 + 0x4f1d8" (identifier "puVar13") (+ "+") (number_literal "0x4f1d8")) () ")")))))) (; ";")) (expression_statement "piVar9 = *(int **)(puVar13 + 0x4e794);" (assignment_expression "piVar9 = *(int **)(puVar13 + 0x4e794)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(puVar13 + 0x4e794)" (* "*") (cast_expression "(int **)(puVar13 + 0x4e794)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x4e794)" (( "(") (binary_expression "puVar13 + 0x4e794" (identifier "puVar13") (+ "+") (number_literal "0x4e794")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(undefined4 *)(*piVar9 + 0x10);" (assignment_expression "uVar2 = *(undefined4 *)(*piVar9 + 0x10)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(*piVar9 + 0x10)" (* "*") (cast_expression "(undefined4 *)(*piVar9 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar9 + 0x10)" (( "(") (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uStack_58 = uVar8;" (assignment_expression "uStack_58 = uVar8" (identifier "uStack_58") (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uStack_54 = uVar1;" (assignment_expression "uStack_54 = uVar1" (identifier "uStack_54") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "uStack_50 = uVar11;" (assignment_expression "uStack_50 = uVar11" (identifier "uStack_50") (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puStack_4c = puVar12;" (assignment_expression "puStack_4c = puVar12" (identifier "puStack_4c") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "uVar1 = xplustabs();" (assignment_expression "uVar1 = xplustabs()" (identifier "uVar1") (= "=") (call_expression "xplustabs()" (identifier "xplustabs") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = *piVar9;" (assignment_expression "iVar3 = *piVar9" (identifier "iVar3") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "piVar9 = *(int **)(iVar3 + 0x10);" (assignment_expression "piVar9 = *(int **)(iVar3 + 0x10)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(iVar3 + 0x10)" (* "*") (cast_expression "(int **)(iVar3 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);" (assignment_expression "uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9)" (identifier "uVar11") (= "=") (call_expression "(**(code **)(puStack_68 + -0x74f0))(*piVar9)" (parenthesized_expression "(**(code **)(puStack_68 + -0x74f0))" (( "(") (pointer_expression "**(code **)(puStack_68 + -0x74f0)" (* "*") (pointer_expression "*(code **)(puStack_68 + -0x74f0)" (* "*") (cast_expression "(code **)(puStack_68 + -0x74f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x74f0)" (( "(") (binary_expression "puStack_68 + -0x74f0" (identifier "puStack_68") (+ "+") (number_literal "-0x74f0")) () ")"))))) () ")")) (argument_list "(*piVar9)" (( "(") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) () ")")))) (; ";")) (if_statement "if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }\n  else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }" (if "if") (parenthesized_expression "((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0)" (( "(") (binary_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0" (parenthesized_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2)" (( "(") (binary_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2" (pointer_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" (* "*") (cast_expression "(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_68 + -0x7f9c) + 4)" (( "(") (binary_expression "*(int *)(puStack_68 + -0x7f9c) + 4" (pointer_expression "*(int *)(puStack_68 + -0x7f9c)" (* "*") (cast_expression "(int *)(puStack_68 + -0x7f9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_68 + -0x7f9c)" (( "(") (binary_expression "puStack_68 + -0x7f9c" (identifier "puStack_68") (+ "+") (number_literal "-0x7f9c")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(iVar3 + 0x1c) = uVar11;\nLAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);\n    uVar11 = xplustabs();\n    *(undefined4 *)(iVar3 + 0x20) = uVar11;\n    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }\n  }" ({ "{") (expression_statement "*(undefined4 *)(iVar3 + 0x1c) = uVar11;" (assignment_expression "*(undefined4 *)(iVar3 + 0x1c) = uVar11" (pointer_expression "*(undefined4 *)(iVar3 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (labeled_statement "LAB_0002dfe4:\n    iVar3 = **(int **)(puStack_68 + -0x7e38);" (statement_identifier "LAB_0002dfe4") (: ":") (expression_statement "iVar3 = **(int **)(puStack_68 + -0x7e38);" (assignment_expression "iVar3 = **(int **)(puStack_68 + -0x7e38)" (identifier "iVar3") (= "=") (pointer_expression "**(int **)(puStack_68 + -0x7e38)" (* "*") (pointer_expression "*(int **)(puStack_68 + -0x7e38)" (* "*") (cast_expression "(int **)(puStack_68 + -0x7e38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x7e38)" (( "(") (binary_expression "puStack_68 + -0x7e38" (identifier "puStack_68") (+ "+") (number_literal "-0x7e38")) () ")")))))) (; ";"))) (expression_statement "uVar11 = xplustabs();" (assignment_expression "uVar11 = xplustabs()" (identifier "uVar11") (= "=") (call_expression "xplustabs()" (identifier "xplustabs") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x20) = uVar11;" (assignment_expression "*(undefined4 *)(iVar3 + 0x20) = uVar11" (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x20)" (( "(") (binary_expression "iVar3 + 0x20" (identifier "iVar3") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (if_statement "if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }" (if "if") (parenthesized_expression "((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0)" (( "(") (binary_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0" (parenthesized_expression "(*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2)" (( "(") (binary_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2" (pointer_expression "*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" (* "*") (cast_expression "(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_68 + -0x7f9c) + 4)" (( "(") (binary_expression "*(int *)(puStack_68 + -0x7f9c) + 4" (pointer_expression "*(int *)(puStack_68 + -0x7f9c)" (* "*") (cast_expression "(int *)(puStack_68 + -0x7f9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_68 + -0x7f9c)" (( "(") (binary_expression "puStack_68 + -0x7f9c" (identifier "puStack_68") (+ "+") (number_literal "-0x7f9c")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);\n      goto LAB_0002e03c;\n    }" ({ "{") (expression_statement "(**(code **)(puStack_68 + -0x7ac8))(uVar2,1);" (call_expression "(**(code **)(puStack_68 + -0x7ac8))(uVar2,1)" (parenthesized_expression "(**(code **)(puStack_68 + -0x7ac8))" (( "(") (pointer_expression "**(code **)(puStack_68 + -0x7ac8)" (* "*") (pointer_expression "*(code **)(puStack_68 + -0x7ac8)" (* "*") (cast_expression "(code **)(puStack_68 + -0x7ac8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x7ac8)" (( "(") (binary_expression "puStack_68 + -0x7ac8" (identifier "puStack_68") (+ "+") (number_literal "-0x7ac8")) () ")"))))) () ")")) (argument_list "(uVar2,1)" (( "(") (identifier "uVar2") (, ",") (number_literal "1") () ")"))) (; ";")) (goto_statement "goto LAB_0002e03c;" (goto "goto") (statement_identifier "LAB_0002e03c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }" (else "else") (compound_statement "{\n    cStack_5d = '\0';\n    uVar6 = leftedge_for(uVar1,piVar9);\n    iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);\n    piVar9 = *(int **)(puStack_68 + -0x7e38);\n    if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }\n    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);\n    iVar7 = *piVar9;\n    if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }\n    *(int *)(iVar7 + 0x1c) = iVar5;\n    *(int *)(iVar7 + 0x20) = iVar3;\n  }" ({ "{") (expression_statement "cStack_5d = '\0';" (assignment_expression "cStack_5d = '\0'" (identifier "cStack_5d") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "uVar6 = leftedge_for(uVar1,piVar9);" (assignment_expression "uVar6 = leftedge_for(uVar1,piVar9)" (identifier "uVar6") (= "=") (call_expression "leftedge_for(uVar1,piVar9)" (identifier "leftedge_for") (argument_list "(uVar1,piVar9)" (( "(") (identifier "uVar1") (, ",") (identifier "piVar9") () ")")))) (; ";")) (expression_statement "iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);" (assignment_expression "iVar3 = get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d)" (identifier "iVar3") (= "=") (call_expression "get_softwrap_breakpoint\n                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d)" (identifier "get_softwrap_breakpoint") (argument_list "(**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d)" (( "(") (pointer_expression "**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10)" (* "*") (cast_expression "(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x10)" (( "(") (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x10" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" (* "*") (pointer_expression "*(int **)(puStack_68 + -0x7e38)" (* "*") (cast_expression "(int **)(puStack_68 + -0x7e38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x7e38)" (( "(") (binary_expression "puStack_68 + -0x7e38" (identifier "puStack_68") (+ "+") (number_literal "-0x7e38")) () ")"))))) (+ "+") (number_literal "0x10")) () ")"))))) (, ",") (identifier "uVar6") (, ",") (pointer_expression "&cStack_5d" (& "&") (identifier "cStack_5d")) () ")")))) (; ";")) (expression_statement "piVar9 = *(int **)(puStack_68 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(puStack_68 + -0x7e38)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(puStack_68 + -0x7e38)" (* "*") (cast_expression "(int **)(puStack_68 + -0x7e38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x7e38)" (( "(") (binary_expression "puStack_68 + -0x7e38" (identifier "puStack_68") (+ "+") (number_literal "-0x7e38")) () ")"))))) (; ";")) (if_statement "if (cStack_5d == '\0') {\n      iVar3 = iVar3 + -1;\n    }" (if "if") (parenthesized_expression "(cStack_5d == '\0')" (( "(") (binary_expression "cStack_5d == '\0'" (identifier "cStack_5d") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar3 = iVar3 + -1;\n    }" ({ "{") (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);" (assignment_expression "iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3)" (identifier "iVar5") (= "=") (call_expression "actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3)" (identifier "actual_x") (argument_list "(**(undefined4 **)(*piVar9 + 0x10),iVar3)" (( "(") (pointer_expression "**(undefined4 **)(*piVar9 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(*piVar9 + 0x10)" (* "*") (cast_expression "(undefined4 **)(*piVar9 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar9 + 0x10)" (( "(") (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "0x10")) () ")"))))) (, ",") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "iVar7 = *piVar9;" (assignment_expression "iVar7 = *piVar9" (identifier "iVar7") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (if_statement "if (*(int *)(iVar7 + 0x1c) == iVar5) {\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x1c) == iVar5)" (( "(") (binary_expression "*(int *)(iVar7 + 0x1c) == iVar5" (pointer_expression "*(int *)(iVar7 + 0x1c)" (* "*") (cast_expression "(int *)(iVar7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (identifier "iVar5")) () ")")) (compound_statement "{\n      *(undefined4 *)(iVar7 + 0x1c) = uVar11;\n      goto LAB_0002dfe4;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (goto_statement "goto LAB_0002dfe4;" (goto "goto") (statement_identifier "LAB_0002dfe4") (; ";")) (} "}"))) (expression_statement "*(int *)(iVar7 + 0x1c) = iVar5;" (assignment_expression "*(int *)(iVar7 + 0x1c) = iVar5" (pointer_expression "*(int *)(iVar7 + 0x1c)" (* "*") (cast_expression "(int *)(iVar7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(iVar7 + 0x20) = iVar3;" (assignment_expression "*(int *)(iVar7 + 0x20) = iVar3" (pointer_expression "*(int *)(iVar7 + 0x20)" (* "*") (cast_expression "(int *)(iVar7 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x20)" (( "(") (binary_expression "iVar7 + 0x20" (identifier "iVar7") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (} "}")))) (expression_statement "iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));" (assignment_expression "iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20))" (identifier "iVar5") (= "=") (call_expression "line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20))" (identifier "line_needs_update") (argument_list "(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20))" (( "(") (identifier "uVar1") (, ",") (pointer_expression "*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20)" (* "*") (cast_expression "(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x20)" (( "(") (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x20" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" (* "*") (pointer_expression "*(int **)(puStack_68 + -0x7e38)" (* "*") (cast_expression "(int **)(puStack_68 + -0x7e38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x7e38)" (( "(") (binary_expression "puStack_68 + -0x7e38" (identifier "puStack_68") (+ "+") (number_literal "-0x7e38")) () ")"))))) (+ "+") (number_literal "0x20")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));\n  }" ({ "{") (expression_statement "(**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));" (call_expression "(**(code **)(puStack_68 + -0x7aa8))\n              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c))" (parenthesized_expression "(**(code **)(puStack_68 + -0x7aa8))" (( "(") (pointer_expression "**(code **)(puStack_68 + -0x7aa8)" (* "*") (pointer_expression "*(code **)(puStack_68 + -0x7aa8)" (* "*") (cast_expression "(code **)(puStack_68 + -0x7aa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x7aa8)" (( "(") (binary_expression "puStack_68 + -0x7aa8" (identifier "puStack_68") (+ "+") (number_literal "-0x7aa8")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),\n               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10)" (* "*") (cast_expression "(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x10)" (( "(") (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x10" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" (* "*") (pointer_expression "*(int **)(puStack_68 + -0x7e38)" (* "*") (cast_expression "(int **)(puStack_68 + -0x7e38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x7e38)" (( "(") (binary_expression "puStack_68 + -0x7e38" (identifier "puStack_68") (+ "+") (number_literal "-0x7e38")) () ")"))))) (+ "+") (number_literal "0x10")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c)" (* "*") (cast_expression "(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(puStack_68 + -0x7e38) + 0x1c)" (( "(") (binary_expression "**(int **)(puStack_68 + -0x7e38) + 0x1c" (pointer_expression "**(int **)(puStack_68 + -0x7e38)" (* "*") (pointer_expression "*(int **)(puStack_68 + -0x7e38)" (* "*") (cast_expression "(int **)(puStack_68 + -0x7e38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x7e38)" (( "(") (binary_expression "puStack_68 + -0x7e38" (identifier "puStack_68") (+ "+") (number_literal "-0x7e38")) () ")"))))) (+ "+") (number_literal "0x1c")) () ")")))) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0002e03c:\n  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }" (statement_identifier "LAB_0002e03c") (: ":") (if_statement "if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_5c == **(int **)(puStack_68 + -0x73f4))" (( "(") (binary_expression "iStack_5c == **(int **)(puStack_68 + -0x73f4)" (identifier "iStack_5c") (== "==") (pointer_expression "**(int **)(puStack_68 + -0x73f4)" (* "*") (pointer_expression "*(int **)(puStack_68 + -0x73f4)" (* "*") (cast_expression "(int **)(puStack_68 + -0x73f4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x73f4)" (( "(") (binary_expression "puStack_68 + -0x73f4" (identifier "puStack_68") (+ "+") (number_literal "-0x73f4")) () ")")))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "pcVar14 = *(code **)(puStack_68 + -0x7428);" (assignment_expression "pcVar14 = *(code **)(puStack_68 + -0x7428)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(puStack_68 + -0x7428)" (* "*") (cast_expression "(code **)(puStack_68 + -0x7428)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_68 + -0x7428)" (( "(") (binary_expression "puStack_68 + -0x7428" (identifier "puStack_68") (+ "+") (number_literal "-0x7428")) () ")"))))) (; ";")) (expression_statement "pcVar15 = do_up;" (assignment_expression "pcVar15 = do_up" (identifier "pcVar15") (= "=") (identifier "do_up")) (; ";")) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_a0 = pcVar14 + 0x563d0;" (assignment_expression "pcStack_a0 = pcVar14 + 0x563d0" (identifier "pcStack_a0") (= "=") (binary_expression "pcVar14 + 0x563d0" (identifier "pcVar14") (+ "+") (number_literal "0x563d0"))) (; ";")) (expression_statement "iStack_8c = **(int **)(pcVar14 + 0x4efdc);" (assignment_expression "iStack_8c = **(int **)(pcVar14 + 0x4efdc)" (identifier "iStack_8c") (= "=") (pointer_expression "**(int **)(pcVar14 + 0x4efdc)" (* "*") (pointer_expression "*(int **)(pcVar14 + 0x4efdc)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4efdc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4efdc)" (( "(") (binary_expression "pcVar14 + 0x4efdc" (identifier "pcVar14") (+ "+") (number_literal "0x4efdc")) () ")")))))) (; ";")) (expression_statement "piVar10 = *(int **)(pcVar14 + 0x4e598);" (assignment_expression "piVar10 = *(int **)(pcVar14 + 0x4e598)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x4e598)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4e598)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e598)" (( "(") (binary_expression "pcVar14 + 0x4e598" (identifier "pcVar14") (+ "+") (number_literal "0x4e598")) () ")"))))) (; ";")) (expression_statement "uVar11 = *(undefined4 *)(*piVar10 + 0x10);" (assignment_expression "uVar11 = *(undefined4 *)(*piVar10 + 0x10)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(*piVar10 + 0x10)" (* "*") (cast_expression "(undefined4 *)(*piVar10 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar10 + 0x10)" (( "(") (binary_expression "*piVar10 + 0x10" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iStack_88 = iVar3;" (assignment_expression "iStack_88 = iVar3" (identifier "iStack_88") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piStack_84 = piVar9;" (assignment_expression "piStack_84 = piVar9" (identifier "piStack_84") (= "=") (identifier "piVar9")) (; ";")) (expression_statement "uStack_80 = uVar1;" (assignment_expression "uStack_80 = uVar1" (identifier "uStack_80") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "pcStack_7c = pcVar15;" (assignment_expression "pcStack_7c = pcVar15" (identifier "pcStack_7c") (= "=") (identifier "pcVar15")) (; ";")) (expression_statement "get_edge_and_target(&iStack_94,&iStack_90);" (call_expression "get_edge_and_target(&iStack_94,&iStack_90)" (identifier "get_edge_and_target") (argument_list "(&iStack_94,&iStack_90)" (( "(") (pointer_expression "&iStack_94" (& "&") (identifier "iStack_94")) (, ",") (pointer_expression "&iStack_90" (& "&") (identifier "iStack_90")) () ")"))) (; ";")) (expression_statement "iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);" (assignment_expression "iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94)" (identifier "iVar3") (= "=") (call_expression "go_back_chunks(1,*piVar10 + 0x10,&iStack_94)" (identifier "go_back_chunks") (argument_list "(1,*piVar10 + 0x10,&iStack_94)" (( "(") (number_literal "1") (, ",") (binary_expression "*piVar10 + 0x10" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (number_literal "0x10")) (, ",") (pointer_expression "&iStack_94" (& "&") (identifier "iStack_94")) () ")")))) (; ";")) (if_statement "if (iVar3 < 1) {\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }" (if "if") (parenthesized_expression "(iVar3 < 1)" (( "(") (binary_expression "iVar3 < 1" (identifier "iVar3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    set_proper_index_and_pww(&iStack_94,iStack_90,0);\n    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;\n  }" ({ "{") (expression_statement "set_proper_index_and_pww(&iStack_94,iStack_90,0);" (call_expression "set_proper_index_and_pww(&iStack_94,iStack_90,0)" (identifier "set_proper_index_and_pww") (argument_list "(&iStack_94,iStack_90,0)" (( "(") (pointer_expression "&iStack_94" (& "&") (identifier "iStack_94")) (, ",") (identifier "iStack_90") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }\n    else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" (if "if") (parenthesized_expression "((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0))" (( "(") (binary_expression "(*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)" (parenthesized_expression "(*(int *)(*piVar10 + 0x24) == 0)" (( "(") (binary_expression "*(int *)(*piVar10 + 0x24) == 0" (pointer_expression "*(int *)(*piVar10 + 0x24)" (* "*") (cast_expression "(int *)(*piVar10 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar10 + 0x24)" (( "(") (binary_expression "*piVar10 + 0x24" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (number_literal "0x24")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)" (( "(") (binary_expression "(**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0" (parenthesized_expression "(**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000)" (( "(") (binary_expression "**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000" (pointer_expression "**(uint **)(pcStack_a0 + -0x7f9c)" (* "*") (pointer_expression "*(uint **)(pcStack_a0 + -0x7f9c)" (* "*") (cast_expression "(uint **)(pcStack_a0 + -0x7f9c)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_a0 + -0x7f9c)" (( "(") (binary_expression "pcStack_a0 + -0x7f9c" (identifier "pcStack_a0") (+ "+") (number_literal "-0x7f9c")) () ")"))))) (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      (**(code **)(pcStack_a0 + -0x7aa0))(0);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" ({ "{") (expression_statement "(**(code **)(pcStack_a0 + -0x7aa0))(0);" (call_expression "(**(code **)(pcStack_a0 + -0x7aa0))(0)" (parenthesized_expression "(**(code **)(pcStack_a0 + -0x7aa0))" (( "(") (pointer_expression "**(code **)(pcStack_a0 + -0x7aa0)" (* "*") (pointer_expression "*(code **)(pcStack_a0 + -0x7aa0)" (* "*") (cast_expression "(code **)(pcStack_a0 + -0x7aa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_a0 + -0x7aa0)" (( "(") (binary_expression "pcStack_a0 + -0x7aa0" (identifier "pcStack_a0") (+ "+") (number_literal "-0x7aa0")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar9 = *(int **)(pcStack_a0 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(pcStack_a0 + -0x7e38)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(pcStack_a0 + -0x7e38)" (* "*") (cast_expression "(int **)(pcStack_a0 + -0x7e38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_a0 + -0x7e38)" (( "(") (binary_expression "pcStack_a0 + -0x7e38" (identifier "pcStack_a0") (+ "+") (number_literal "-0x7e38")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" (else "else") (compound_statement "{\n      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);\n      piVar9 = *(int **)(pcStack_a0 + -0x7e38);\n    }" ({ "{") (expression_statement "(**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);" (call_expression "(**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1)" (parenthesized_expression "(**(code **)(pcStack_a0 + -0x7ac8))" (( "(") (pointer_expression "**(code **)(pcStack_a0 + -0x7ac8)" (* "*") (pointer_expression "*(code **)(pcStack_a0 + -0x7ac8)" (* "*") (cast_expression "(code **)(pcStack_a0 + -0x7ac8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_a0 + -0x7ac8)" (( "(") (binary_expression "pcStack_a0 + -0x7ac8" (identifier "pcStack_a0") (+ "+") (number_literal "-0x7ac8")) () ")"))))) () ")")) (argument_list "(uVar11,1)" (( "(") (identifier "uVar11") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "piVar9 = *(int **)(pcStack_a0 + -0x7e38);" (assignment_expression "piVar9 = *(int **)(pcStack_a0 + -0x7e38)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(pcStack_a0 + -0x7e38)" (* "*") (cast_expression "(int **)(pcStack_a0 + -0x7e38)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_a0 + -0x7e38)" (( "(") (binary_expression "pcStack_a0 + -0x7e38" (identifier "pcStack_a0") (+ "+") (number_literal "-0x7e38")) () ")"))))) (; ";")) (} "}")))) (expression_statement "*(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;" (assignment_expression "*(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90" (pointer_expression "*(int *)(*piVar9 + 0x20)" (* "*") (cast_expression "(int *)(*piVar9 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar9 + 0x20)" (( "(") (binary_expression "*piVar9 + 0x20" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "iStack_94 + iStack_90" (identifier "iStack_94") (+ "+") (identifier "iStack_90"))) (; ";")) (} "}"))) (if_statement "if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_8c != **(int **)(pcStack_a0 + -0x73f4))" (( "(") (binary_expression "iStack_8c != **(int **)(pcStack_a0 + -0x73f4)" (identifier "iStack_8c") (!= "!=") (pointer_expression "**(int **)(pcStack_a0 + -0x73f4)" (* "*") (pointer_expression "*(int **)(pcStack_a0 + -0x73f4)" (* "*") (cast_expression "(int **)(pcStack_a0 + -0x73f4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_a0 + -0x73f4)" (( "(") (binary_expression "pcStack_a0 + -0x73f4" (identifier "pcStack_a0") (+ "+") (number_literal "-0x73f4")) () ")")))))) () ")")) (compound_statement "{\n    pcVar14 = *(code **)(pcStack_a0 + -0x7428);\n    pcVar15 = do_down;\n    (*pcVar14)();\n    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);\n    piVar9 = *(int **)(pcVar14 + 0x4e460);\n    uVar1 = *(undefined4 *)(*piVar9 + 0x10);\n    piStack_c0 = &iStack_94;\n    piStack_bc = piVar10;\n    uStack_b8 = uVar11;\n    pcStack_b4 = pcVar15;\n    get_edge_and_target(&iStack_cc,&iStack_c8);\n    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);\n    if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }\n    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }\n    return;\n  }" ({ "{") (expression_statement "pcVar14 = *(code **)(pcStack_a0 + -0x7428);" (assignment_expression "pcVar14 = *(code **)(pcStack_a0 + -0x7428)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcStack_a0 + -0x7428)" (* "*") (cast_expression "(code **)(pcStack_a0 + -0x7428)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_a0 + -0x7428)" (( "(") (binary_expression "pcStack_a0 + -0x7428" (identifier "pcStack_a0") (+ "+") (number_literal "-0x7428")) () ")"))))) (; ";")) (expression_statement "pcVar15 = do_down;" (assignment_expression "pcVar15 = do_down" (identifier "pcVar15") (= "=") (identifier "do_down")) (; ";")) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_c4 = **(int **)(pcVar14 + 0x4eea4);" (assignment_expression "iStack_c4 = **(int **)(pcVar14 + 0x4eea4)" (identifier "iStack_c4") (= "=") (pointer_expression "**(int **)(pcVar14 + 0x4eea4)" (* "*") (pointer_expression "*(int **)(pcVar14 + 0x4eea4)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4eea4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4eea4)" (( "(") (binary_expression "pcVar14 + 0x4eea4" (identifier "pcVar14") (+ "+") (number_literal "0x4eea4")) () ")")))))) (; ";")) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e460)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x4e460)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4e460)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e460)" (( "(") (binary_expression "pcVar14 + 0x4e460" (identifier "pcVar14") (+ "+") (number_literal "0x4e460")) () ")"))))) (; ";")) (expression_statement "uVar1 = *(undefined4 *)(*piVar9 + 0x10);" (assignment_expression "uVar1 = *(undefined4 *)(*piVar9 + 0x10)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(*piVar9 + 0x10)" (* "*") (cast_expression "(undefined4 *)(*piVar9 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar9 + 0x10)" (( "(") (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "piStack_c0 = &iStack_94;" (assignment_expression "piStack_c0 = &iStack_94" (identifier "piStack_c0") (= "=") (pointer_expression "&iStack_94" (& "&") (identifier "iStack_94"))) (; ";")) (expression_statement "piStack_bc = piVar10;" (assignment_expression "piStack_bc = piVar10" (identifier "piStack_bc") (= "=") (identifier "piVar10")) (; ";")) (expression_statement "uStack_b8 = uVar11;" (assignment_expression "uStack_b8 = uVar11" (identifier "uStack_b8") (= "=") (identifier "uVar11")) (; ";")) (expression_statement "pcStack_b4 = pcVar15;" (assignment_expression "pcStack_b4 = pcVar15" (identifier "pcStack_b4") (= "=") (identifier "pcVar15")) (; ";")) (expression_statement "get_edge_and_target(&iStack_cc,&iStack_c8);" (call_expression "get_edge_and_target(&iStack_cc,&iStack_c8)" (identifier "get_edge_and_target") (argument_list "(&iStack_cc,&iStack_c8)" (( "(") (pointer_expression "&iStack_cc" (& "&") (identifier "iStack_cc")) (, ",") (pointer_expression "&iStack_c8" (& "&") (identifier "iStack_c8")) () ")"))) (; ";")) (expression_statement "iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);" (assignment_expression "iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc)" (identifier "iVar3") (= "=") (call_expression "go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc)" (identifier "go_forward_chunks") (argument_list "(1,*piVar9 + 0x10,&iStack_cc)" (( "(") (number_literal "1") (, ",") (binary_expression "*piVar9 + 0x10" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "0x10")) (, ",") (pointer_expression "&iStack_cc" (& "&") (identifier "iStack_cc")) () ")")))) (; ";")) (if_statement "if (iVar3 < 1) {\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }" (if "if") (parenthesized_expression "(iVar3 < 1)" (( "(") (binary_expression "iVar3 < 1" (identifier "iVar3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);\n      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;\n    }" ({ "{") (expression_statement "set_proper_index_and_pww(&iStack_cc,iStack_c8,1);" (call_expression "set_proper_index_and_pww(&iStack_cc,iStack_c8,1)" (identifier "set_proper_index_and_pww") (argument_list "(&iStack_cc,iStack_c8,1)" (( "(") (pointer_expression "&iStack_cc" (& "&") (identifier "iStack_cc")) (, ",") (identifier "iStack_c8") (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }\n      else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" (if "if") (parenthesized_expression "((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0))" (( "(") (binary_expression "(*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&\n         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)" (parenthesized_expression "(*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1)" (( "(") (binary_expression "*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1" (pointer_expression "*(int *)(*piVar9 + 0x24)" (* "*") (cast_expression "(int *)(*piVar9 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar9 + 0x24)" (( "(") (binary_expression "*piVar9 + 0x24" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "0x24")) () ")")))) (== "==") (binary_expression "**(int **)(pcVar14 + 0x4e2e4) + -1" (pointer_expression "**(int **)(pcVar14 + 0x4e2e4)" (* "*") (pointer_expression "*(int **)(pcVar14 + 0x4e2e4)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4e2e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e2e4)" (( "(") (binary_expression "pcVar14 + 0x4e2e4" (identifier "pcVar14") (+ "+") (number_literal "0x4e2e4")) () ")"))))) (+ "+") (number_literal "-1"))) () ")")) (&& "&&") (parenthesized_expression "((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)" (( "(") (binary_expression "(**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0" (parenthesized_expression "(**(uint **)(pcVar14 + 0x4e2fc) & 0x4000)" (( "(") (binary_expression "**(uint **)(pcVar14 + 0x4e2fc) & 0x4000" (pointer_expression "**(uint **)(pcVar14 + 0x4e2fc)" (* "*") (pointer_expression "*(uint **)(pcVar14 + 0x4e2fc)" (* "*") (cast_expression "(uint **)(pcVar14 + 0x4e2fc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e2fc)" (( "(") (binary_expression "pcVar14 + 0x4e2fc" (identifier "pcVar14") (+ "+") (number_literal "0x4e2fc")) () ")"))))) (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        (**(code **)(pcVar14 + 0x4e7f8))(1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" ({ "{") (expression_statement "(**(code **)(pcVar14 + 0x4e7f8))(1);" (call_expression "(**(code **)(pcVar14 + 0x4e7f8))(1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e7f8))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x4e7f8)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x4e7f8)" (* "*") (cast_expression "(code **)(pcVar14 + 0x4e7f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e7f8)" (( "(") (binary_expression "pcVar14 + 0x4e7f8" (identifier "pcVar14") (+ "+") (number_literal "0x4e7f8")) () ")"))))) () ")")) (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e460)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x4e460)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4e460)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e460)" (( "(") (binary_expression "pcVar14 + 0x4e460" (identifier "pcVar14") (+ "+") (number_literal "0x4e460")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" (else "else") (compound_statement "{\n        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);\n        piVar9 = *(int **)(pcVar14 + 0x4e460);\n      }" ({ "{") (expression_statement "(**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);" (call_expression "(**(code **)(pcVar14 + 0x4e7d0))(uVar1,1)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e7d0))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x4e7d0)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x4e7d0)" (* "*") (cast_expression "(code **)(pcVar14 + 0x4e7d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e7d0)" (( "(") (binary_expression "pcVar14 + 0x4e7d0" (identifier "pcVar14") (+ "+") (number_literal "0x4e7d0")) () ")"))))) () ")")) (argument_list "(uVar1,1)" (( "(") (identifier "uVar1") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e460);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e460)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x4e460)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4e460)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e460)" (( "(") (binary_expression "pcVar14 + 0x4e460" (identifier "pcVar14") (+ "+") (number_literal "0x4e460")) () ")"))))) (; ";")) (} "}")))) (expression_statement "*(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;" (assignment_expression "*(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8" (pointer_expression "*(int *)(*piVar9 + 0x20)" (* "*") (cast_expression "(int *)(*piVar9 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar9 + 0x20)" (( "(") (binary_expression "*piVar9 + 0x20" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (binary_expression "iStack_cc + iStack_c8" (identifier "iStack_cc") (+ "+") (identifier "iStack_c8"))) (; ";")) (} "}"))) (if_statement "if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(iStack_c4 != **(int **)(pcVar14 + 0x4eea4))" (( "(") (binary_expression "iStack_c4 != **(int **)(pcVar14 + 0x4eea4)" (identifier "iStack_c4") (!= "!=") (pointer_expression "**(int **)(pcVar14 + 0x4eea4)" (* "*") (pointer_expression "*(int **)(pcVar14 + 0x4eea4)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4eea4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4eea4)" (( "(") (binary_expression "pcVar14 + 0x4eea4" (identifier "pcVar14") (+ "+") (number_literal "0x4eea4")) () ")")))))) () ")")) (compound_statement "{\n      pcVar14 = *(code **)(pcVar14 + 0x4ee70);\n      (*pcVar14)();\n      iVar3 = **(int **)(pcVar14 + 0x4e31c);\n      piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }\n      return;\n    }" ({ "{") (expression_statement "pcVar14 = *(code **)(pcVar14 + 0x4ee70);" (assignment_expression "pcVar14 = *(code **)(pcVar14 + 0x4ee70)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(pcVar14 + 0x4ee70)" (* "*") (cast_expression "(code **)(pcVar14 + 0x4ee70)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4ee70)" (( "(") (binary_expression "pcVar14 + 0x4ee70" (identifier "pcVar14") (+ "+") (number_literal "0x4ee70")) () ")"))))) (; ";")) (expression_statement "(*pcVar14)();" (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar3 = **(int **)(pcVar14 + 0x4e31c);" (assignment_expression "iVar3 = **(int **)(pcVar14 + 0x4e31c)" (identifier "iVar3") (= "=") (pointer_expression "**(int **)(pcVar14 + 0x4e31c)" (* "*") (pointer_expression "*(int **)(pcVar14 + 0x4e31c)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4e31c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e31c)" (( "(") (binary_expression "pcVar14 + 0x4e31c" (identifier "pcVar14") (+ "+") (number_literal "0x4e31c")) () ")")))))) (; ";")) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4e1a0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e1a0)" (( "(") (binary_expression "pcVar14 + 0x4e1a0" (identifier "pcVar14") (+ "+") (number_literal "0x4e1a0")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0))" (( "(") (binary_expression "(*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||\n         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)" (parenthesized_expression "(*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0" (pointer_expression "*(int *)(*(int *)(iVar3 + 0xc) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(iVar3 + 0xc) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0xc) + 0xc)" (( "(") (binary_expression "*(int *)(iVar3 + 0xc) + 0xc" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)" (( "(") (comma_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4e1a0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e1a0)" (( "(") (binary_expression "pcVar14 + 0x4e1a0" (identifier "pcVar14") (+ "+") (number_literal "0x4e1a0")) () ")"))))) (, ",") (binary_expression "*(int *)(iVar3 + 0x18) != 0" (pointer_expression "*(int *)(iVar3 + 0x18)" (* "*") (cast_expression "(int *)(iVar3 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18)" (( "(") (binary_expression "iVar3 + 0x18" (identifier "iVar3") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }\n      }" ({ "{") (if_statement "if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }\n        else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x24) == *piVar9 + -1)" (( "(") (binary_expression "*(int *)(iVar3 + 0x24) == *piVar9 + -1" (pointer_expression "*(int *)(iVar3 + 0x24)" (* "*") (cast_expression "(int *)(iVar3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (binary_expression "*piVar9 + -1" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n          do_up();\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" ({ "{") (expression_statement "do_up();" (call_expression "do_up()" (identifier "do_up") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4e1a0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e1a0)" (( "(") (binary_expression "pcVar14 + 0x4e1a0" (identifier "pcVar14") (+ "+") (number_literal "0x4e1a0")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" (else "else") (compound_statement "{\n          piVar9 = *(int **)(pcVar14 + 0x4e1a0);\n        }" ({ "{") (expression_statement "piVar9 = *(int **)(pcVar14 + 0x4e1a0);" (assignment_expression "piVar9 = *(int **)(pcVar14 + 0x4e1a0)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(pcVar14 + 0x4e1a0)" (* "*") (cast_expression "(int **)(pcVar14 + 0x4e1a0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e1a0)" (( "(") (binary_expression "pcVar14 + 0x4e1a0" (identifier "pcVar14") (+ "+") (number_literal "0x4e1a0")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (1 < *piVar9) {\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }" (if "if") (parenthesized_expression "(1 < *piVar9)" (( "(") (binary_expression "1 < *piVar9" (number_literal "1") (< "<") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) () ")")) (compound_statement "{\n          (**(code **)(pcVar14 + 0x4e6b4))(0);\n        }" ({ "{") (expression_statement "(**(code **)(pcVar14 + 0x4e6b4))(0);" (call_expression "(**(code **)(pcVar14 + 0x4e6b4))(0)" (parenthesized_expression "(**(code **)(pcVar14 + 0x4e6b4))" (( "(") (pointer_expression "**(code **)(pcVar14 + 0x4e6b4)" (* "*") (pointer_expression "*(code **)(pcVar14 + 0x4e6b4)" (* "*") (cast_expression "(code **)(pcVar14 + 0x4e6b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar14 + 0x4e6b4)" (( "(") (binary_expression "pcVar14 + 0x4e6b4" (identifier "pcVar14") (+ "+") (number_literal "0x4e6b4")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (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: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (goto_statement label: (statement_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 (identifier) (number_literal))))) alternative: (else_clause (compound_statement (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (pointer_expression argument: (identifier)) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal)))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_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)))))) (if_statement condition: (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (labeled_statement label: (statement_identifier) (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: (identifier) right: (number_literal))) consequence: (compound_statement (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 (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))))) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement))) (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (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: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (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: (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))))) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (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))))) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (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: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))))) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (identifier)) right: (number_literal)))))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (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))))) right: (identifier))) (expression_statement (assignment_expression left: (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))))) right: (identifier)))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (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: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (return_statement)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (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: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (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: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_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: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (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: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (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: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_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: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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))))) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (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))))) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (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: (identifier) right: (number_literal))))))) arguments: (argument_list (number_literal)))))))) (return_statement))) (return_statement))) (return_statement))))

void MASKED(void)

{
  undefined4 uVar1;
  undefined4 uVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  undefined4 uVar6;
  int iVar7;
  uint uVar8;
  int *piVar9;
  int *piVar10;
  undefined4 uVar11;
  undefined *puVar12;
  undefined *puVar13;
  code *pcVar14;
  code *pcVar15;
  int iStack_cc;
  int iStack_c8;
  int iStack_c4;
  int *piStack_c0;
  int *piStack_bc;
  undefined4 uStack_b8;
  code *pcStack_b4;
  code *pcStack_a0;
  int iStack_94;
  int iStack_90;
  int iStack_8c;
  int iStack_88;
  int *piStack_84;
  undefined4 uStack_80;
  code *pcStack_7c;
  undefined *puStack_68;
  char cStack_5d;
  int iStack_5c;
  uint uStack_58;
  undefined4 uStack_54;
  undefined4 uStack_50;
  undefined *puStack_4c;
  undefined4 local_20;
  int local_1c;
  
  local_1c = *(int *)PTR___stack_chk_guard_0007d12c;
  uVar11 = *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10);
  uVar1 = xplustabs();
  puVar12 = PTR_openfile_0007c6e8;
  local_20 = 0;
  if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {
    uVar8 = 0;
    if (-1 < *(int *)PTR_flags_0007c584 << 7) goto LAB_0002dd70;
LAB_0002de94:
    puVar12 = PTR_openfile_0007c6e8;
    uVar4 = indent_length(**(undefined4 **)(*(int *)PTR_openfile_0007c6e8 + 0x10));
    iVar3 = *(int *)puVar12;
    if (*(char *)(**(int **)(iVar3 + 0x10) + uVar4) == '\0') goto LAB_0002de5c;
    if (*(uint *)(iVar3 + 0x1c) == uVar4) {
      *(undefined4 *)(iVar3 + 0x1c) = 0;
    }
    else {
      if (((*(uint *)(PTR_flags_0007c584 + 4) & 2) != 0) && (uVar4 < uVar8)) goto LAB_0002de70;
      *(uint *)(iVar3 + 0x1c) = uVar4;
    }
LAB_0002dd78:
    uVar8 = *(uint *)PTR_openfile_0007c6e8;
    uVar2 = xplustabs();
    *(undefined4 *)(uVar8 + 0x20) = uVar2;
    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) goto LAB_0002dda8;
    (*(code *)PTR_edit_redraw_0007ca58)(uVar11,1);
  }
  else {
    local_20 = leftedge_for(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10));
    uVar8 = proper_x(*(undefined4 *)(*(int *)puVar12 + 0x10),&local_20,0,local_20);
    puVar12 = PTR_openfile_0007c6e8;
    if (*(int *)PTR_flags_0007c584 << 7 < 0) goto LAB_0002de94;
LAB_0002de5c:
    if ((*(uint *)(PTR_flags_0007c584 + 4) & 2) == 0) {
LAB_0002dd70:
      *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c) = 0;
      goto LAB_0002dd78;
    }
LAB_0002de70:
    iVar3 = *(int *)PTR_openfile_0007c6e8;
    if (*(uint *)(iVar3 + 0x1c) == uVar8) {
      *(undefined4 *)(iVar3 + 0x1c) = 0;
      goto LAB_0002dd78;
    }
    *(uint *)(iVar3 + 0x1c) = uVar8;
    *(undefined4 *)(iVar3 + 0x20) = local_20;
LAB_0002dda8:
    iVar3 = line_needs_update(uVar1,*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x20));
    if (iVar3 != 0) {
      (*(code *)PTR_update_line_0007ca78)
                (*(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x10),
                 *(undefined4 *)(*(int *)PTR_openfile_0007c6e8 + 0x1c));
    }
  }
  if (local_1c == *(int *)PTR___stack_chk_guard_0007d12c) {
    return;
  }
  puVar13 = PTR___stack_chk_fail_0007d0f8;
  (*(code *)PTR___stack_chk_fail_0007d0f8)();
  puStack_68 = puVar13 + 0x565cc;
  iStack_5c = **(int **)(puVar13 + 0x4f1d8);
  piVar9 = *(int **)(puVar13 + 0x4e794);
  uVar2 = *(undefined4 *)(*piVar9 + 0x10);
  uStack_58 = uVar8;
  uStack_54 = uVar1;
  uStack_50 = uVar11;
  puStack_4c = puVar12;
  uVar1 = xplustabs();
  iVar3 = *piVar9;
  piVar9 = *(int **)(iVar3 + 0x10);
  uVar11 = (**(code **)(puStack_68 + -0x74f0))(*piVar9);
  if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) == 0) {
    *(undefined4 *)(iVar3 + 0x1c) = uVar11;
LAB_0002dfe4:
    iVar3 = **(int **)(puStack_68 + -0x7e38);
    uVar11 = xplustabs();
    *(undefined4 *)(iVar3 + 0x20) = uVar11;
    if ((*(uint *)(*(int *)(puStack_68 + -0x7f9c) + 4) & 2) != 0) {
      (**(code **)(puStack_68 + -0x7ac8))(uVar2,1);
      goto LAB_0002e03c;
    }
  }
  else {
    cStack_5d = '\0';
    uVar6 = leftedge_for(uVar1,piVar9);
    iVar3 = get_softwrap_breakpoint
                      (**(undefined4 **)(**(int **)(puStack_68 + -0x7e38) + 0x10),uVar6,&cStack_5d);
    piVar9 = *(int **)(puStack_68 + -0x7e38);
    if (cStack_5d == '\0') {
      iVar3 = iVar3 + -1;
    }
    iVar5 = actual_x(**(undefined4 **)(*piVar9 + 0x10),iVar3);
    iVar7 = *piVar9;
    if (*(int *)(iVar7 + 0x1c) == iVar5) {
      *(undefined4 *)(iVar7 + 0x1c) = uVar11;
      goto LAB_0002dfe4;
    }
    *(int *)(iVar7 + 0x1c) = iVar5;
    *(int *)(iVar7 + 0x20) = iVar3;
  }
  iVar5 = line_needs_update(uVar1,*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x20));
  if (iVar5 != 0) {
    (**(code **)(puStack_68 + -0x7aa8))
              (*(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x10),
               *(undefined4 *)(**(int **)(puStack_68 + -0x7e38) + 0x1c));
  }
LAB_0002e03c:
  if (iStack_5c == **(int **)(puStack_68 + -0x73f4)) {
    return;
  }
  pcVar14 = *(code **)(puStack_68 + -0x7428);
  pcVar15 = do_up;
  (*pcVar14)();
  pcStack_a0 = pcVar14 + 0x563d0;
  iStack_8c = **(int **)(pcVar14 + 0x4efdc);
  piVar10 = *(int **)(pcVar14 + 0x4e598);
  uVar11 = *(undefined4 *)(*piVar10 + 0x10);
  iStack_88 = iVar3;
  piStack_84 = piVar9;
  uStack_80 = uVar1;
  pcStack_7c = pcVar15;
  get_edge_and_target(&iStack_94,&iStack_90);
  iVar3 = go_back_chunks(1,*piVar10 + 0x10,&iStack_94);
  if (iVar3 < 1) {
    set_proper_index_and_pww(&iStack_94,iStack_90,0);
    if ((*(int *)(*piVar10 + 0x24) == 0) && ((**(uint **)(pcStack_a0 + -0x7f9c) & 0x4000) != 0)) {
      (**(code **)(pcStack_a0 + -0x7aa0))(0);
      piVar9 = *(int **)(pcStack_a0 + -0x7e38);
    }
    else {
      (**(code **)(pcStack_a0 + -0x7ac8))(uVar11,1);
      piVar9 = *(int **)(pcStack_a0 + -0x7e38);
    }
    *(int *)(*piVar9 + 0x20) = iStack_94 + iStack_90;
  }
  if (iStack_8c != **(int **)(pcStack_a0 + -0x73f4)) {
    pcVar14 = *(code **)(pcStack_a0 + -0x7428);
    pcVar15 = do_down;
    (*pcVar14)();
    iStack_c4 = **(int **)(pcVar14 + 0x4eea4);
    piVar9 = *(int **)(pcVar14 + 0x4e460);
    uVar1 = *(undefined4 *)(*piVar9 + 0x10);
    piStack_c0 = &iStack_94;
    piStack_bc = piVar10;
    uStack_b8 = uVar11;
    pcStack_b4 = pcVar15;
    get_edge_and_target(&iStack_cc,&iStack_c8);
    iVar3 = go_forward_chunks(1,*piVar9 + 0x10,&iStack_cc);
    if (iVar3 < 1) {
      set_proper_index_and_pww(&iStack_cc,iStack_c8,1);
      if ((*(int *)(*piVar9 + 0x24) == **(int **)(pcVar14 + 0x4e2e4) + -1) &&
         ((**(uint **)(pcVar14 + 0x4e2fc) & 0x4000) != 0)) {
        (**(code **)(pcVar14 + 0x4e7f8))(1);
        piVar9 = *(int **)(pcVar14 + 0x4e460);
      }
      else {
        (**(code **)(pcVar14 + 0x4e7d0))(uVar1,1);
        piVar9 = *(int **)(pcVar14 + 0x4e460);
      }
      *(int *)(*piVar9 + 0x20) = iStack_cc + iStack_c8;
    }
    if (iStack_c4 != **(int **)(pcVar14 + 0x4eea4)) {
      pcVar14 = *(code **)(pcVar14 + 0x4ee70);
      (*pcVar14)();
      iVar3 = **(int **)(pcVar14 + 0x4e31c);
      piVar9 = *(int **)(pcVar14 + 0x4e1a0);
      if ((*(int *)(*(int *)(iVar3 + 0xc) + 0xc) != 0) ||
         (piVar9 = *(int **)(pcVar14 + 0x4e1a0), *(int *)(iVar3 + 0x18) != 0)) {
        if (*(int *)(iVar3 + 0x24) == *piVar9 + -1) {
          do_up();
          piVar9 = *(int **)(pcVar14 + 0x4e1a0);
        }
        else {
          piVar9 = *(int **)(pcVar14 + 0x4e1a0);
        }
        if (1 < *piVar9) {
          (**(code **)(pcVar14 + 0x4e6b4))(0);
        }
      }
      return;
    }
    return;
  }
  return;
}

