
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

int console_get_userpass_input(prompts_t *p,uchar *in,int inlen)

{
  undefined1 uVar1;
  undefined1 uVar2;
  undefined1 uVar3;
  termios *ptVar4;
  int *piVar5;
  termios *ptVar6;
  cc_t *pcVar7;
  undefined4 uVar8;
  int iVar9;
  int iVar10;
  termios *ptVar11;
  int extraout_v1;
  int iVar12;
  tcflag_t tVar13;
  tcflag_t tVar14;
  tcflag_t tVar15;
  uint uVar16;
  uint uVar17;
  char *pcVar18;
  char *pcVar19;
  FILE *unaff_s3;
  uint unaff_s4;
  termios *unaff_s5;
  termios *unaff_s6;
  int in_t9;
  prompt_t *unaff_s8;
  FILE *local_b0;
  code *local_ac;
  int *local_a4;
  int local_a0;
  termios oldmode;
  termios newmode;
  
  piVar5 = *(int **)(&DAT_00033014 + in_t9);
  iVar10 = *piVar5;
  iVar12 = *(int *)(in_t9 + 0x32610);
  if (p->n_prompts != 0) {
    pcVar18 = (char *)(*(int *)(in_t9 + 0x32608) + -0x22a4);
    uVar16 = 0;
    do {
      uVar17 = uVar16 + 1;
      (**(code **)(&DAT_00032774 + in_t9))(p->prompts[uVar16],pcVar18);
      uVar16 = uVar17;
    } while (uVar17 < p->n_prompts);
    if ((p->n_prompts != 0) && (iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0)) goto LAB_0007b02c;
    iVar12 = *(int *)(in_t9 + 0x32610);
  }
  uVar17 = (**(code **)(&LAB_00032f58 + in_t9))(iVar12 + -0x7ccc,2);
  if ((int)uVar17 < 0) {
    local_a4 = *(int **)(&LAB_00033030 + in_t9);
    uVar17 = 0;
    local_b0 = (FILE *)*local_a4;
  }
  else {
    local_a4 = *(int **)(&LAB_00033030 + in_t9);
    local_b0 = (FILE *)(**(code **)(ssh2_kexinit_addalg + in_t9))
                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c);
  }
  if (p->name_reqd != 0) {
    pcVar18 = p->name;
    if (pcVar18 != (char *)0x0) {
      iVar12 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar18);
      local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);
      console_prompt_text(local_b0,pcVar18,iVar12);
      unaff_s3 = local_b0;
      if (p->name[iVar12 + -1] != '\n') {
        (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);
      }
    }
  }
  pcVar19 = p->instruction;
  pcVar18 = pcVar19;
  if (pcVar19 != (char *)0x0) {
    pcVar18 = (char *)(**(code **)(&LAB_00032f68 + in_t9))(pcVar19);
    local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);
    console_prompt_text(local_b0,pcVar19,(int)pcVar18);
    unaff_s3 = local_b0;
    if ((p->instruction + (int)pcVar18)[-1] != '\n') {
      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);
    }
  }
  if (p->n_prompts == 0) goto LAB_0007b0dc;
  unaff_s4 = 0;
  unaff_s5 = &oldmode;
  unaff_s6 = &newmode;
  local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);
  unaff_s3 = (FILE *)(oldmode.c_cc + 0x1f);
  pcVar18 = (char *)0xa;
  local_a0 = *(int *)(in_t9 + 0x32608) + -0x2c;
  do {
    unaff_s8 = p->prompts[unaff_s4];
    (**(code **)(&DAT_00032e78 + in_t9))(uVar17,unaff_s5);
    ptVar6 = unaff_s5;
    ptVar4 = unaff_s6;
    do {
      ptVar11 = ptVar4;
      pcVar7 = &ptVar6->c_line;
      tVar15 = ptVar6->c_oflag;
      tVar14 = ptVar6->c_cflag;
      tVar13 = ptVar6->c_lflag;
      ptVar11->c_iflag = ptVar6->c_iflag;
      ptVar11->c_oflag = tVar15;
      ptVar11->c_cflag = tVar14;
      ptVar11->c_lflag = tVar13;
      ptVar6 = (termios *)pcVar7;
      ptVar4 = (termios *)&ptVar11->c_line;
    } while ((FILE *)pcVar7 != unaff_s3);
    uVar1 = *(undefined1 *)((int)&unaff_s3->_flags + 1);
    uVar2 = *(undefined1 *)((int)&unaff_s3->_flags + 2);
    uVar3 = *(undefined1 *)((int)&unaff_s3->_flags + 3);
    ptVar11->c_line = *(undefined1 *)&unaff_s3->_flags;
    ptVar11->c_cc[0] = uVar1;
    ptVar11->c_cc[1] = uVar2;
    ptVar11->c_cc[2] = uVar3;
    if (unaff_s8->echo == 0) {
      newmode.c_lflag = newmode.c_lflag & 0xfffffff7 | 3;
    }
    else {
      newmode.c_lflag = newmode.c_lflag | 0xb;
    }
    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s6);
    pcVar19 = unaff_s8->prompt;
    uVar8 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar19);
    iVar12 = 0;
    (*local_ac)(local_b0,pcVar19,uVar8);
    while( true ) {
      (**(code **)(&LAB_00032d78 + in_t9))(unaff_s8,(iVar12 * 5 >> 2) + 0x200);
      iVar9 = (**(code **)(in_t9 + 0x33044))
                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12);
      if (iVar9 < 1) break;
      iVar12 = iVar12 + iVar9;
      if ((char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18) {
        (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);
        iVar12 = iVar12 + -1;
        if (unaff_s8->echo == 0) goto LAB_0007b138;
        goto LAB_0007b0bc;
      }
    }
    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);
    if (unaff_s8->echo == 0) {
      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);
    }
    if ((FILE *)*local_a4 != local_b0) {
      (**(code **)(&DAT_00032ec4 + in_t9))();
    }
    iVar12 = 0;
LAB_0007b02c:
    while( true ) {
      if (iVar10 == *piVar5) {
        return iVar12;
      }
      (**(code **)(&DAT_00032fe4 + in_t9))();
      iVar12 = extraout_v1;
LAB_0007b138:
      (*local_ac)(local_b0,local_a0,1);
LAB_0007b0bc:
      unaff_s4 = unaff_s4 + 1;
      unaff_s8->result[iVar12] = '\0';
      if (unaff_s4 < p->n_prompts) break;
LAB_0007b0dc:
      if ((FILE *)*local_a4 == local_b0) {
        iVar12 = 1;
      }
      else {
        (**(code **)(&DAT_00032ec4 + in_t9))();
        iVar12 = 1;
      }
    }
  } while( true );
}



undefined4 console_get_userpass_input(int param_1)

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  int extraout_v1;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined *puVar12;
  undefined *puVar13;
  undefined4 *unaff_s3;
  uint unaff_s4;
  undefined4 *unaff_s5;
  undefined4 *unaff_s6;
  undefined4 *unaff_s8;
  undefined4 *local_b0;
  code *local_ac;
  undefined4 *local_a4;
  undefined *local_a0;
  undefined4 local_94 [12];
  undefined4 local_64;
  undefined4 local_60 [3];
  uint local_54;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_000adcd4;
  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;
  if (*(int *)(param_1 + 0x14) != 0) {
    uVar11 = 0;
    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;
    do {
      iVar6 = uVar11 * 4;
      uVar11 = uVar11 + 1;
      (*(code *)PTR_prompt_set_result_000ad434)
                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);
    } while (uVar11 < *(uint *)(param_1 + 0x14));
    if ((*(uint *)(param_1 + 0x14) != 0) &&
       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;
  }
  uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);
  local_a4 = (undefined4 *)PTR_stderr_000adcf0;
  if ((int)uVar11 < 0) {
    uVar11 = 0;
    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;
  }
  else {
    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);
  }
  if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {
    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);
    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);
    FUN_00079dd0(local_b0,iVar6,iVar3);
    unaff_s3 = local_b0;
    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {
      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);
    }
  }
  puVar13 = *(undefined **)(param_1 + 0xc);
  puVar12 = puVar13;
  if (puVar13 != (undefined *)0x0) {
    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);
    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);
    FUN_00079dd0(local_b0,puVar13,puVar12);
    unaff_s3 = local_b0;
    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {
      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);
    }
  }
  if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;
  unaff_s4 = 0;
  unaff_s5 = local_94;
  unaff_s6 = local_60;
  local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);
  unaff_s3 = &local_64;
  puVar12 = (undefined *)0xa;
  local_a0 = PTR_DAT_000ad2c8 + -0x2c;
  do {
    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);
    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);
    puVar4 = unaff_s5;
    puVar7 = unaff_s6;
    do {
      puVar5 = puVar4 + 4;
      puVar8 = puVar7 + 4;
      uVar10 = puVar4[1];
      uVar9 = puVar4[2];
      uVar2 = puVar4[3];
      *puVar7 = *puVar4;
      puVar7[1] = uVar10;
      puVar7[2] = uVar9;
      puVar7[3] = uVar2;
      puVar4 = puVar5;
      puVar7 = puVar8;
    } while (puVar5 != unaff_s3);
    *puVar8 = *unaff_s3;
    if (unaff_s8[1] == 0) {
      local_54 = local_54 & 0xfffffff7 | 3;
    }
    else {
      local_54 = local_54 | 0xb;
    }
    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);
    uVar9 = *unaff_s8;
    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);
    iVar6 = 0;
    (*local_ac)(local_b0,uVar9,uVar2);
    do {
      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);
      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);
      if (iVar3 < 1) {
        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);
        if (unaff_s8[1] == 0) {
          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);
        }
        if ((undefined4 *)*local_a4 != local_b0) {
          (*(code *)PTR_fclose_000adb84)();
        }
        uVar2 = 0;
        goto LAB_0007b02c;
      }
      iVar6 = iVar6 + iVar3;
    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);
    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);
    iVar6 = iVar6 + -1;
    if (unaff_s8[1] == 0) goto LAB_0007b138;
    while( true ) {
      unaff_s4 = unaff_s4 + 1;
      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;
      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;
LAB_0007b0dc:
      if ((undefined4 *)*local_a4 == local_b0) {
        uVar2 = 1;
      }
      else {
        (*(code *)PTR_fclose_000adb84)();
        uVar2 = 1;
      }
LAB_0007b02c:
      if (local_2c == *(int *)puVar1) {
        return uVar2;
      }
      (*(code *)PTR___stack_chk_fail_000adca4)();
      iVar6 = extraout_v1;
LAB_0007b138:
      (*local_ac)(local_b0,local_a0,1);
    }
  } while( true );
}


lui gp,0x4
addiu gp,gp,-0x5a30
addu gp,gp,t9
lw v0,-0x75bc(gp)
addiu sp,sp,-0xc8
or v1,v0,zero
sw v0,0x20(sp)
sw gp,0x10(sp)
sw s2,0xa8(sp)
or s2,a0,zero
sw ra,0xc4(sp)
sw s8,0xc0(sp)
sw s7,0xbc(sp)
sw s6,0xb8(sp)
sw s5,0xb4(sp)
sw s4,0xb0(sp)
sw s3,0xac(sp)
sw s1,0xa4(sp)
sw s0,0xa0(sp)
lw v1,0x0(v1)
lw v0,0x14(a0)
sw v1,0x9c(sp)
beq v0,zero,0x0007ad74
_lw a0,-0x7fc0(gp)
lw s1,-0x7fc8(gp)
or s0,zero,zero
addiu s1,s1,-0x22a4
lw v0,0x18(s2)
sll v1,s0,0x2
lw t9,-0x7e5c(gp)
or a1,s1,zero
addiu s0,s0,0x1
addu v0,v0,v1
jalr t9
_lw a0,0x0(v0)
lw v0,0x14(s2)
sltu v1,s0,v0
bne v1,zero,0x0007ad2c
_lw gp,0x10(sp)
beq v0,zero,0x0007ad70
_lw v0,-0x7f28(gp)
lw v0,0x0(v0)
bne v0,zero,0x0007b02c
_or v0,zero,zero
lw a0,-0x7fc0(gp)
li a1,0x2
lw t9,-0x7678(gp)
jalr t9
_addiu a0,a0,-0x7ccc
lw gp,0x10(sp)
bgez v0,0x0007b06c
_or s0,v0,zero
lw v0,-0x75a0(gp)
or s0,zero,zero
sw v0,0x24(sp)
lw v0,0x0(v0)
sw v0,0x18(sp)
lw v0,0x8(s2)
beq v0,zero,0x0007ae04
_nop
lw s1,0x4(s2)
beq s1,zero,0x0007ae04
_lw t9,-0x7668(gp)
jalr t9
_or a0,s1,zero
or a1,s1,zero
lw gp,0x10(sp)
or a2,v0,zero
lw s3,0x18(sp)
or s1,v0,zero
lw v1,-0x7f98(gp)
or a0,s3,zero
addiu t9,v1,-0x6230
bal 0x00079dd0
_sw t9,0x1c(sp)
li v0,0xa
lw v1,0x4(s2)
addu v1,v1,s1
lb v1,-0x1(v1)
bne v1,v0,0x0007b104
_lw gp,0x10(sp)
lw s1,0xc(s2)
beq s1,zero,0x0007ae74
_lw t9,-0x7668(gp)
jalr t9
_or a0,s1,zero
or a1,s1,zero
lw gp,0x10(sp)
or a2,v0,zero
lw s3,0x18(sp)
or s1,v0,zero
lw v1,-0x7f98(gp)
or a0,s3,zero
addiu t9,v1,-0x6230
bal 0x00079dd0
_sw t9,0x1c(sp)
li v0,0xa
lw v1,0xc(s2)
addu v1,v1,s1
lb v1,-0x1(v1)
beq v1,v0,0x0007ae74
_lw gp,0x10(sp)
lw a1,-0x7fc8(gp)
li a2,0x1
lw t9,0x1c(sp)
or a0,s3,zero
jalr t9
_addiu a1,a1,-0x2c
lw gp,0x10(sp)
lw v0,0x14(s2)
beq v0,zero,0x0007b0dc
_lw v1,-0x7f98(gp)
or s4,zero,zero
addiu s5,sp,0x34
addiu s6,sp,0x68
addiu v0,v1,-0x6230
addiu s3,sp,0x64
sw v0,0x1c(sp)
li s1,0xa
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x2c
sw v0,0x28(sp)
lw v1,0x18(s2)
sll v0,s4,0x2
lw t9,-0x7758(gp)
or a1,s5,zero
or a0,s0,zero
addu v0,v1,v0
jalr t9
_lw s8,0x0(v0)
or v0,s5,zero
lw gp,0x10(sp)
or v1,s6,zero
lw t1,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a2,-0xc(v0)
lw a1,-0x8(v0)
lw a0,-0x4(v0)
sw t1,-0x10(v1)
sw a2,-0xc(v1)
sw a1,-0x8(v1)
bne v0,s3,0x0007aed4
_sw a0,-0x4(v1)
lw v0,0x0(s3)
sw v0,0x0(v1)
lw v1,0x4(s8)
bne v1,zero,0x0007b094
_lw v0,0x74(sp)
li v1,-0x9
and v0,v0,v1
ori v0,v0,0x3
lw t9,-0x7624(gp)
li a1,0x540e
or a2,s6,zero
sw v0,0x74(sp)
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
lw s7,0x0(s8)
lw t9,-0x7668(gp)
jalr t9
_or a0,s7,zero
or a1,s7,zero
lw a0,0x18(sp)
or a2,v0,zero
lw t9,0x1c(sp)
jalr t9
_or s7,zero,zero
b 0x0007af84
_lw gp,0x10(sp)
lw a0,0x8(s8)
addu s7,s7,v0
addu a0,a0,s7
lb v0,-0x1(a0)
beq v0,s1,0x0007b09c
_lw t9,-0x7624(gp)
sll a1,s7,0x2
lw t9,-0x7858(gp)
or a0,s8,zero
addu a1,a1,s7
sra a1,a1,0x2
jalr t9
_addiu a1,a1,0x200
or a0,s0,zero
lw gp,0x10(sp)
lw a2,0xc(s8)
lw a1,0x8(s8)
addiu a2,a2,-0x1
lw t9,-0x758c(gp)
addu a1,a1,s7
jalr t9
_subu a2,a2,s7
bgtz v0,0x0007af6c
_lw gp,0x10(sp)
lw t9,-0x7624(gp)
li a1,0x540e
or a2,s5,zero
jalr t9
_or a0,s0,zero
lw v0,0x4(s8)
bne v0,zero,0x0007b008
_lw gp,0x10(sp)
lw a1,-0x7fc8(gp)
li a2,0x1
lw a0,0x18(sp)
lw t9,0x1c(sp)
jalr t9
_addiu a1,a1,-0x2c
lw gp,0x10(sp)
lw v0,0x24(sp)
lw a0,0x18(sp)
lw v0,0x0(v0)
beq v0,a0,0x0007b028
_lw t9,-0x770c(gp)
jalr t9
_nop
lw gp,0x10(sp)
or v0,zero,zero
lw v1,0x20(sp)
lw a0,0x9c(sp)
lw v1,0x0(v1)
bne a0,v1,0x0007b12c
_lw ra,0xc4(sp)
lw s8,0xc0(sp)
lw s7,0xbc(sp)
lw s6,0xb8(sp)
lw s5,0xb4(sp)
lw s4,0xb0(sp)
lw s3,0xac(sp)
lw s2,0xa8(sp)
lw s1,0xa4(sp)
lw s0,0xa0(sp)
jr ra
_addiu sp,sp,0xc8
lw a1,-0x7fc8(gp)
or a0,v0,zero
lw v0,-0x75a0(gp)
lw t9,-0x7574(gp)
addiu a1,a1,0x632c
jalr t9
_sw v0,0x24(sp)
lw gp,0x10(sp)
b 0x0007ada4
_sw v0,0x18(sp)
b 0x0007af20
_ori v0,v0,0xb
li a1,0x540e
or a2,s5,zero
jalr t9
_or a0,s0,zero
addiu v1,s7,-0x1
lw v0,0x4(s8)
beq v0,zero,0x0007b138
_lw gp,0x10(sp)
lw v0,0x8(s8)
addiu s4,s4,0x1
addu v1,v0,v1
sb zero,0x0(v1)
lw v0,0x14(s2)
sltu v0,s4,v0
bne v0,zero,0x0007aea8
_nop
lw v0,0x24(sp)
lw a0,0x18(sp)
lw v0,0x0(v0)
beq v0,a0,0x0007b124
_lw t9,-0x770c(gp)
jalr t9
_nop
li v0,0x1
b 0x0007b02c
_lw gp,0x10(sp)
lw a1,-0x7fc8(gp)
li a2,0x1
lw t9,0x1c(sp)
or a0,s3,zero
jalr t9
_addiu a1,a1,-0x2c
b 0x0007ae04
_lw gp,0x10(sp)
b 0x0007b02c
_li v0,0x1
lw t9,-0x75ec(gp)
jalr t9
_nop
lw a1,0x28(sp)
li a2,0x1
lw a0,0x18(sp)
lw t9,0x1c(sp)
jalr t9
_sw v1,0x2c(sp)
lw gp,0x10(sp)
b 0x0007b0bc
_lw v1,0x2c(sp)
(translation_unit "undefined4 console_get_userpass_input(int param_1)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int extraout_v1;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined4 *unaff_s3;\n  uint unaff_s4;\n  undefined4 *unaff_s5;\n  undefined4 *unaff_s6;\n  undefined4 *unaff_s8;\n  undefined4 *local_b0;\n  code *local_ac;\n  undefined4 *local_a4;\n  undefined *local_a0;\n  undefined4 local_94 [12];\n  undefined4 local_64;\n  undefined4 local_60 [3];\n  uint local_54;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }\n  uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);\n  local_a4 = (undefined4 *)PTR_stderr_000adcf0;\n  if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }\n  if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  puVar13 = *(undefined **)(param_1 + 0xc);\n  puVar12 = puVar13;\n  if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = local_94;\n  unaff_s6 = local_60;\n  local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n  unaff_s3 = &local_64;\n  puVar12 = (undefined *)0xa;\n  local_a0 = PTR_DAT_000ad2c8 + -0x2c;\n  do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );\n}\n\n" (function_definition "undefined4 console_get_userpass_input(int param_1)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int extraout_v1;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined4 *unaff_s3;\n  uint unaff_s4;\n  undefined4 *unaff_s5;\n  undefined4 *unaff_s6;\n  undefined4 *unaff_s8;\n  undefined4 *local_b0;\n  code *local_ac;\n  undefined4 *local_a4;\n  undefined *local_a0;\n  undefined4 local_94 [12];\n  undefined4 local_64;\n  undefined4 local_60 [3];\n  uint local_54;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }\n  uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);\n  local_a4 = (undefined4 *)PTR_stderr_000adcf0;\n  if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }\n  if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  puVar13 = *(undefined **)(param_1 + 0xc);\n  puVar12 = puVar13;\n  if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = local_94;\n  unaff_s6 = local_60;\n  local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n  unaff_s3 = &local_64;\n  puVar12 = (undefined *)0xa;\n  local_a0 = PTR_DAT_000ad2c8 + -0x2c;\n  do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );\n}" type_identifier (function_declarator "console_get_userpass_input(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int extraout_v1;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined4 *unaff_s3;\n  uint unaff_s4;\n  undefined4 *unaff_s5;\n  undefined4 *unaff_s6;\n  undefined4 *unaff_s8;\n  undefined4 *local_b0;\n  code *local_ac;\n  undefined4 *local_a4;\n  undefined *local_a0;\n  undefined4 local_94 [12];\n  undefined4 local_64;\n  undefined4 local_60 [3];\n  uint local_54;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }\n  uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);\n  local_a4 = (undefined4 *)PTR_stderr_000adcf0;\n  if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }\n  if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  puVar13 = *(undefined **)(param_1 + 0xc);\n  puVar12 = puVar13;\n  if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = local_94;\n  unaff_s6 = local_60;\n  local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n  unaff_s3 = &local_64;\n  puVar12 = (undefined *)0xa;\n  local_a0 = PTR_DAT_000ad2c8 + -0x2c;\n  do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint unaff_s4;" type_identifier identifier ;) (declaration "undefined4 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined4 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined4 *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "code *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "undefined4 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "undefined *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "undefined4 local_94 [12];" type_identifier (array_declarator "local_94 [12]" identifier [ number_literal ]) ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60 [3];" type_identifier (array_declarator "local_60 [3]" identifier [ number_literal ]) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" ( (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "puVar12 = PTR_DAT_000ad2c8 + -0x22a4;" (assignment_expression "puVar12 = PTR_DAT_000ad2c8 + -0x22a4" identifier = (binary_expression "PTR_DAT_000ad2c8 + -0x22a4" identifier + number_literal)) ;) (do_statement "do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));" do (compound_statement "{\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    }" { (expression_statement "iVar6 = uVar11 * 4;" (assignment_expression "iVar6 = uVar11 * 4" identifier = (binary_expression "uVar11 * 4" identifier * number_literal)) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);" (call_expression "(*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12)" (parenthesized_expression "(*(code *)PTR_prompt_set_result_000ad434)" ( (pointer_expression "*(code *)PTR_prompt_set_result_000ad434" * (cast_expression "(code *)PTR_prompt_set_result_000ad434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12)" ( (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x18) + iVar6)" ( (binary_expression "*(int *)(param_1 + 0x18) + iVar6" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + identifier) )))) , identifier ))) ;) }) while (parenthesized_expression "(uVar11 < *(uint *)(param_1 + 0x14))" ( (binary_expression "uVar11 < *(uint *)(param_1 + 0x14)" identifier < (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) )) ;) (if_statement "if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;" if (parenthesized_expression "((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0))" ( (binary_expression "(*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)" (parenthesized_expression "(*(uint *)(param_1 + 0x14) != 0)" ( (binary_expression "*(uint *)(param_1 + 0x14) != 0" (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)" ( (comma_expression "uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0" (assignment_expression "uVar2 = 0" identifier = number_literal) , (binary_expression "*(int *)PTR_console_batch_mode_000ad368 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000ad368" * (cast_expression "(int *)PTR_console_batch_mode_000ad368" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal)) ))) )) (goto_statement "goto LAB_0007b02c;" goto statement_identifier ;)) })) (expression_statement "uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);" (assignment_expression "uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2)" identifier = (call_expression "(*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2)" (parenthesized_expression "(*(code *)PTR_open64_000adc18)" ( (pointer_expression "*(code *)PTR_open64_000adc18" * (cast_expression "(code *)PTR_open64_000adc18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000ad2d0 + -0x7ccc,2)" ( (binary_expression "PTR_DAT_000ad2d0 + -0x7ccc" identifier + number_literal) , number_literal )))) ;) (expression_statement "local_a4 = (undefined4 *)PTR_stderr_000adcf0;" (assignment_expression "local_a4 = (undefined4 *)PTR_stderr_000adcf0" identifier = (cast_expression "(undefined4 *)PTR_stderr_000adcf0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = *(undefined4 **)PTR_stderr_000adcf0;" (assignment_expression "local_b0 = *(undefined4 **)PTR_stderr_000adcf0" identifier = (pointer_expression "*(undefined4 **)PTR_stderr_000adcf0" * (cast_expression "(undefined4 **)PTR_stderr_000adcf0" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }) (else_clause "else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }" else (compound_statement "{\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }" { (expression_statement "local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);" (assignment_expression "local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c)" (parenthesized_expression "(*(code *)PTR_fdopen_000add1c)" ( (pointer_expression "*(code *)PTR_fdopen_000add1c" * (cast_expression "(code *)PTR_fdopen_000add1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,PTR_DAT_000ad2c8 + 0x632c)" ( identifier , (binary_expression "PTR_DAT_000ad2c8 + 0x632c" identifier + number_literal) ))))) ;) }))) (if_statement "if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" if (parenthesized_expression "((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0))" ( (binary_expression "(*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)" (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" ( (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar6 = *(int *)(param_1 + 4), iVar6 != 0)" ( (comma_expression "iVar6 = *(int *)(param_1 + 4), iVar6 != 0" (assignment_expression "iVar6 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6)" identifier = (call_expression "(*(code *)PTR_strlen_000adc28)(iVar6)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);" (assignment_expression "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230)" identifier = (cast_expression "(code *)(PTR_LAB_000ad2f8 + -0x6230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x6230)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x6230" identifier + number_literal) )))) ;) (expression_statement "FUN_00079dd0(local_b0,iVar6,iVar3);" (call_expression "FUN_00079dd0(local_b0,iVar6,iVar3)" identifier (argument_list "(local_b0,iVar6,iVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s3 = local_b0;" (assignment_expression "unaff_s3 = local_b0" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + iVar3 + -1)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + iVar3 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + iVar3 + -1)" ( (binary_expression "*(int *)(param_1 + 4) + iVar3 + -1" (binary_expression "*(int *)(param_1 + 4) + iVar3" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + identifier) + number_literal) )))) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" { (expression_statement "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);" (call_expression "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" ( identifier , (binary_expression "PTR_DAT_000ad2c8 + -0x2c" identifier + number_literal) , number_literal ))) ;) })) })) (expression_statement "puVar13 = *(undefined **)(param_1 + 0xc);" (assignment_expression "puVar13 = *(undefined **)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined **)(param_1 + 0xc)" * (cast_expression "(undefined **)(param_1 + 0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (if_statement "if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" if (parenthesized_expression "(puVar13 != (undefined *)0x0)" ( (binary_expression "puVar13 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" { (expression_statement "puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);" (assignment_expression "puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13)" identifier = (cast_expression "(undefined *)(*(code *)PTR_strlen_000adc28)(puVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_000adc28)(puVar13)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier ))))) ;) (expression_statement "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);" (assignment_expression "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230)" identifier = (cast_expression "(code *)(PTR_LAB_000ad2f8 + -0x6230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x6230)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x6230" identifier + number_literal) )))) ;) (expression_statement "FUN_00079dd0(local_b0,puVar13,puVar12);" (call_expression "FUN_00079dd0(local_b0,puVar13,puVar12)" identifier (argument_list "(local_b0,puVar13,puVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s3 = local_b0;" (assignment_expression "unaff_s3 = local_b0" identifier = identifier) ;) (if_statement "if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" if (parenthesized_expression "(puVar12[*(int *)(param_1 + 0xc) + -1] != '\n')" ( (binary_expression "puVar12[*(int *)(param_1 + 0xc) + -1] != '\n'" (subscript_expression "puVar12[*(int *)(param_1 + 0xc) + -1]" identifier [ (binary_expression "*(int *)(param_1 + 0xc) + -1" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) ]) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" { (expression_statement "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);" (call_expression "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" ( identifier , (binary_expression "PTR_DAT_000ad2c8 + -0x2c" identifier + number_literal) , number_literal ))) ;) })) })) (if_statement "if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;" if (parenthesized_expression "(*(int *)(param_1 + 0x14) == 0)" ( (binary_expression "*(int *)(param_1 + 0x14) == 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0007b0dc;" goto statement_identifier ;)) (expression_statement "unaff_s4 = 0;" (assignment_expression "unaff_s4 = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = local_94;" (assignment_expression "unaff_s5 = local_94" identifier = identifier) ;) (expression_statement "unaff_s6 = local_60;" (assignment_expression "unaff_s6 = local_60" identifier = identifier) ;) (expression_statement "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);" (assignment_expression "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230)" identifier = (cast_expression "(code *)(PTR_LAB_000ad2f8 + -0x6230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x6230)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x6230" identifier + number_literal) )))) ;) (expression_statement "unaff_s3 = &local_64;" (assignment_expression "unaff_s3 = &local_64" identifier = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "puVar12 = (undefined *)0xa;" (assignment_expression "puVar12 = (undefined *)0xa" identifier = (cast_expression "(undefined *)0xa" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a0 = PTR_DAT_000ad2c8 + -0x2c;" (assignment_expression "local_a0 = PTR_DAT_000ad2c8 + -0x2c" identifier = (binary_expression "PTR_DAT_000ad2c8 + -0x2c" identifier + number_literal)) ;) (do_statement "do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );" do (compound_statement "{\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  }" { (expression_statement "unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);" (assignment_expression "unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" * (cast_expression "(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" ( (binary_expression "*(int *)(param_1 + 0x18) + unaff_s4 * 4" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + (binary_expression "unaff_s4 * 4" identifier * number_literal)) ))))) ;) (expression_statement "(*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);" (call_expression "(*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5)" (parenthesized_expression "(*(code *)PTR_tcgetattr_000adb38)" ( (pointer_expression "*(code *)PTR_tcgetattr_000adb38" * (cast_expression "(code *)PTR_tcgetattr_000adb38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,unaff_s5)" ( identifier , identifier ))) ;) (expression_statement "puVar4 = unaff_s5;" (assignment_expression "puVar4 = unaff_s5" identifier = identifier) ;) (expression_statement "puVar7 = unaff_s6;" (assignment_expression "puVar7 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);" do (compound_statement "{\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    }" { (expression_statement "puVar5 = puVar4 + 4;" (assignment_expression "puVar5 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar7 + 4;" (assignment_expression "puVar8 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) (expression_statement "uVar10 = puVar4[1];" (assignment_expression "uVar10 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar4[2];" (assignment_expression "uVar9 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar4[3];" (assignment_expression "uVar2 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar7 = *puVar4;" (assignment_expression "*puVar7 = *puVar4" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar9;" (assignment_expression "puVar7[2] = uVar9" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar2;" (assignment_expression "puVar7[3] = uVar2" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != unaff_s3)" ( (binary_expression "puVar5 != unaff_s3" identifier != identifier) )) ;) (expression_statement "*puVar8 = *unaff_s3;" (assignment_expression "*puVar8 = *unaff_s3" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*unaff_s3" * identifier)) ;) (if_statement "if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }" if (parenthesized_expression "(unaff_s8[1] == 0)" ( (binary_expression "unaff_s8[1] == 0" (subscript_expression "unaff_s8[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }" { (expression_statement "local_54 = local_54 & 0xfffffff7 | 3;" (assignment_expression "local_54 = local_54 & 0xfffffff7 | 3" identifier = (binary_expression "local_54 & 0xfffffff7 | 3" (binary_expression "local_54 & 0xfffffff7" identifier & number_literal) | number_literal)) ;) }) (else_clause "else {\n      local_54 = local_54 | 0xb;\n    }" else (compound_statement "{\n      local_54 = local_54 | 0xb;\n    }" { (expression_statement "local_54 = local_54 | 0xb;" (assignment_expression "local_54 = local_54 | 0xb" identifier = (binary_expression "local_54 | 0xb" identifier | number_literal)) ;) }))) (expression_statement "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);" (call_expression "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000adc6c)" ( (pointer_expression "*(code *)PTR_tcsetattr_000adc6c" * (cast_expression "(code *)PTR_tcsetattr_000adc6c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,&DAT_0000540e,unaff_s6)" ( identifier , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (expression_statement "uVar9 = *unaff_s8;" (assignment_expression "uVar9 = *unaff_s8" identifier = (pointer_expression "*unaff_s8" * identifier)) ;) (expression_statement "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);" (assignment_expression "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9)" identifier = (call_expression "(*(code *)PTR_strlen_000adc28)(uVar9)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "(*local_ac)(local_b0,uVar9,uVar2);" (call_expression "(*local_ac)(local_b0,uVar9,uVar2)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,uVar9,uVar2)" ( identifier , identifier , identifier ))) ;) (do_statement "do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);" do (compound_statement "{\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    }" { (expression_statement "(*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);" (call_expression "(*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200)" (parenthesized_expression "(*(code *)PTR_prompt_ensure_result_size_000ada38)" ( (pointer_expression "*(code *)PTR_prompt_ensure_result_size_000ada38" * (cast_expression "(code *)PTR_prompt_ensure_result_size_000ada38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8,(iVar6 * 5 >> 2) + 0x200)" ( identifier , (binary_expression "(iVar6 * 5 >> 2) + 0x200" (parenthesized_expression "(iVar6 * 5 >> 2)" ( (binary_expression "iVar6 * 5 >> 2" (binary_expression "iVar6 * 5" identifier * number_literal) >> number_literal) )) + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);" (assignment_expression "iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6)" identifier = (call_expression "(*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6)" (parenthesized_expression "(*(code *)PTR_read_000add04)" ( (pointer_expression "*(code *)PTR_read_000add04" * (cast_expression "(code *)PTR_read_000add04" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6)" ( identifier , (binary_expression "unaff_s8[2] + iVar6" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) + identifier) , (binary_expression "(unaff_s8[3] + -1) - iVar6" (parenthesized_expression "(unaff_s8[3] + -1)" ( (binary_expression "unaff_s8[3] + -1" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) + number_literal) )) - identifier) )))) ;) (if_statement "if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }" if (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) (compound_statement "{\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }" { (expression_statement "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);" (call_expression "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000adc6c)" ( (pointer_expression "*(code *)PTR_tcsetattr_000adc6c" * (cast_expression "(code *)PTR_tcsetattr_000adc6c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,&DAT_0000540e,unaff_s5)" ( identifier , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (if_statement "if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }" if (parenthesized_expression "(unaff_s8[1] == 0)" ( (binary_expression "unaff_s8[1] == 0" (subscript_expression "unaff_s8[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }" { (expression_statement "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);" (call_expression "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" ( identifier , (binary_expression "PTR_DAT_000ad2c8 + -0x2c" identifier + number_literal) , number_literal ))) ;) })) (if_statement "if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }" if (parenthesized_expression "((undefined4 *)*local_a4 != local_b0)" ( (binary_expression "(undefined4 *)*local_a4 != local_b0" (cast_expression "(undefined4 *)*local_a4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_a4" * identifier)) != identifier) )) (compound_statement "{\n          (*(code *)PTR_fclose_000adb84)();\n        }" { (expression_statement "(*(code *)PTR_fclose_000adb84)();" (call_expression "(*(code *)PTR_fclose_000adb84)()" (parenthesized_expression "(*(code *)PTR_fclose_000adb84)" ( (pointer_expression "*(code *)PTR_fclose_000adb84" * (cast_expression "(code *)PTR_fclose_000adb84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007b02c;" goto statement_identifier ;) })) (expression_statement "iVar6 = iVar6 + iVar3;" (assignment_expression "iVar6 = iVar6 + iVar3" identifier = (binary_expression "iVar6 + iVar3" identifier + identifier)) ;) }) while (parenthesized_expression "((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12)" ( (binary_expression "(undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12" (cast_expression "(undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(char *)(unaff_s8[2] + iVar6 + -1)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(unaff_s8[2] + iVar6 + -1)" * (cast_expression "(char *)(unaff_s8[2] + iVar6 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[2] + iVar6 + -1)" ( (binary_expression "unaff_s8[2] + iVar6 + -1" (binary_expression "unaff_s8[2] + iVar6" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) + identifier) + number_literal) )))))) != identifier) )) ;) (expression_statement "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);" (call_expression "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000adc6c)" ( (pointer_expression "*(code *)PTR_tcsetattr_000adc6c" * (cast_expression "(code *)PTR_tcsetattr_000adc6c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,&DAT_0000540e,unaff_s5)" ( identifier , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (if_statement "if (unaff_s8[1] == 0) goto LAB_0007b138;" if (parenthesized_expression "(unaff_s8[1] == 0)" ( (binary_expression "unaff_s8[1] == 0" (subscript_expression "unaff_s8[1]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0007b138;" goto statement_identifier ;)) (while_statement "while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }" { (expression_statement "unaff_s4 = unaff_s4 + 1;" (assignment_expression "unaff_s4 = unaff_s4 + 1" identifier = (binary_expression "unaff_s4 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(unaff_s8[2] + iVar6) = 0;" (assignment_expression "*(undefined1 *)(unaff_s8[2] + iVar6) = 0" (pointer_expression "*(undefined1 *)(unaff_s8[2] + iVar6)" * (cast_expression "(undefined1 *)(unaff_s8[2] + iVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[2] + iVar6)" ( (binary_expression "unaff_s8[2] + iVar6" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (if_statement "if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;" if (parenthesized_expression "(unaff_s4 < *(uint *)(param_1 + 0x14))" ( (binary_expression "unaff_s4 < *(uint *)(param_1 + 0x14)" identifier < (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" statement_identifier : (if_statement "if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" if (parenthesized_expression "((undefined4 *)*local_a4 == local_b0)" ( (binary_expression "(undefined4 *)*local_a4 == local_b0" (cast_expression "(undefined4 *)*local_a4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_a4" * identifier)) == identifier) )) (compound_statement "{\n        uVar2 = 1;\n      }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" else (compound_statement "{\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" { (expression_statement "(*(code *)PTR_fclose_000adb84)();" (call_expression "(*(code *)PTR_fclose_000adb84)()" (parenthesized_expression "(*(code *)PTR_fclose_000adb84)" ( (pointer_expression "*(code *)PTR_fclose_000adb84" * (cast_expression "(code *)PTR_fclose_000adb84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) })))) (labeled_statement "LAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return uVar2;\n      }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = extraout_v1;" (assignment_expression "iVar6 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);" statement_identifier : (expression_statement "(*local_ac)(local_b0,local_a0,1);" (call_expression "(*local_ac)(local_b0,local_a0,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,local_a0,1)" ( identifier , identifier , number_literal ))) ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nint console_get_userpass_input(prompts_t *p,uchar *in,int inlen)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  termios *ptVar4;\n  int *piVar5;\n  termios *ptVar6;\n  cc_t *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  termios *ptVar11;\n  int extraout_v1;\n  int iVar12;\n  tcflag_t tVar13;\n  tcflag_t tVar14;\n  tcflag_t tVar15;\n  uint uVar16;\n  uint uVar17;\n  char *pcVar18;\n  char *pcVar19;\n  FILE *unaff_s3;\n  uint unaff_s4;\n  termios *unaff_s5;\n  termios *unaff_s6;\n  int in_t9;\n  prompt_t *unaff_s8;\n  FILE *local_b0;\n  code *local_ac;\n  int *local_a4;\n  int local_a0;\n  termios oldmode;\n  termios newmode;\n  \n  piVar5 = *(int **)(&DAT_00033014 + in_t9);\n  iVar10 = *piVar5;\n  iVar12 = *(int *)(in_t9 + 0x32610);\n  if (p->n_prompts != 0) {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x32608) + -0x22a4);\n    uVar16 = 0;\n    do {\n      uVar17 = uVar16 + 1;\n      (**(code **)(&DAT_00032774 + in_t9))(p->prompts[uVar16],pcVar18);\n      uVar16 = uVar17;\n    } while (uVar17 < p->n_prompts);\n    if ((p->n_prompts != 0) && (iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0)) goto LAB_0007b02c;\n    iVar12 = *(int *)(in_t9 + 0x32610);\n  }\n  uVar17 = (**(code **)(&LAB_00032f58 + in_t9))(iVar12 + -0x7ccc,2);\n  if ((int)uVar17 < 0) {\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    uVar17 = 0;\n    local_b0 = (FILE *)*local_a4;\n  }\n  else {\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    local_b0 = (FILE *)(**(code **)(ssh2_kexinit_addalg + in_t9))\n                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c);\n  }\n  if (p->name_reqd != 0) {\n    pcVar18 = p->name;\n    if (pcVar18 != (char *)0x0) {\n      iVar12 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar18);\n      local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n      console_prompt_text(local_b0,pcVar18,iVar12);\n      unaff_s3 = local_b0;\n      if (p->name[iVar12 + -1] != '\n') {\n        (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n      }\n    }\n  }\n  pcVar19 = p->instruction;\n  pcVar18 = pcVar19;\n  if (pcVar19 != (char *)0x0) {\n    pcVar18 = (char *)(**(code **)(&LAB_00032f68 + in_t9))(pcVar19);\n    local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n    console_prompt_text(local_b0,pcVar19,(int)pcVar18);\n    unaff_s3 = local_b0;\n    if ((p->instruction + (int)pcVar18)[-1] != '\n') {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }\n  }\n  if (p->n_prompts == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = &oldmode;\n  unaff_s6 = &newmode;\n  local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n  unaff_s3 = (FILE *)(oldmode.c_cc + 0x1f);\n  pcVar18 = (char *)0xa;\n  local_a0 = *(int *)(in_t9 + 0x32608) + -0x2c;\n  do {\n    unaff_s8 = p->prompts[unaff_s4];\n    (**(code **)(&DAT_00032e78 + in_t9))(uVar17,unaff_s5);\n    ptVar6 = unaff_s5;\n    ptVar4 = unaff_s6;\n    do {\n      ptVar11 = ptVar4;\n      pcVar7 = &ptVar6->c_line;\n      tVar15 = ptVar6->c_oflag;\n      tVar14 = ptVar6->c_cflag;\n      tVar13 = ptVar6->c_lflag;\n      ptVar11->c_iflag = ptVar6->c_iflag;\n      ptVar11->c_oflag = tVar15;\n      ptVar11->c_cflag = tVar14;\n      ptVar11->c_lflag = tVar13;\n      ptVar6 = (termios *)pcVar7;\n      ptVar4 = (termios *)&ptVar11->c_line;\n    } while ((FILE *)pcVar7 != unaff_s3);\n    uVar1 = *(undefined1 *)((int)&unaff_s3->_flags + 1);\n    uVar2 = *(undefined1 *)((int)&unaff_s3->_flags + 2);\n    uVar3 = *(undefined1 *)((int)&unaff_s3->_flags + 3);\n    ptVar11->c_line = *(undefined1 *)&unaff_s3->_flags;\n    ptVar11->c_cc[0] = uVar1;\n    ptVar11->c_cc[1] = uVar2;\n    ptVar11->c_cc[2] = uVar3;\n    if (unaff_s8->echo == 0) {\n      newmode.c_lflag = newmode.c_lflag & 0xfffffff7 | 3;\n    }\n    else {\n      newmode.c_lflag = newmode.c_lflag | 0xb;\n    }\n    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s6);\n    pcVar19 = unaff_s8->prompt;\n    uVar8 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar19);\n    iVar12 = 0;\n    (*local_ac)(local_b0,pcVar19,uVar8);\n    while( true ) {\n      (**(code **)(&LAB_00032d78 + in_t9))(unaff_s8,(iVar12 * 5 >> 2) + 0x200);\n      iVar9 = (**(code **)(in_t9 + 0x33044))\n                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12);\n      if (iVar9 < 1) break;\n      iVar12 = iVar12 + iVar9;\n      if ((char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18) {\n        (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n        iVar12 = iVar12 + -1;\n        if (unaff_s8->echo == 0) goto LAB_0007b138;\n        goto LAB_0007b0bc;\n      }\n    }\n    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n    if (unaff_s8->echo == 0) {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }\n    if ((FILE *)*local_a4 != local_b0) {\n      (**(code **)(&DAT_00032ec4 + in_t9))();\n    }\n    iVar12 = 0;\nLAB_0007b02c:\n    while( true ) {\n      if (iVar10 == *piVar5) {\n        return iVar12;\n      }\n      (**(code **)(&DAT_00032fe4 + in_t9))();\n      iVar12 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\nLAB_0007b0bc:\n      unaff_s4 = unaff_s4 + 1;\n      unaff_s8->result[iVar12] = '\0';\n      if (unaff_s4 < p->n_prompts) break;\nLAB_0007b0dc:\n      if ((FILE *)*local_a4 == local_b0) {\n        iVar12 = 1;\n      }\n      else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }\n    }\n  } while( true );\n}\n\n" comment (function_definition "int console_get_userpass_input(prompts_t *p,uchar *in,int inlen)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  termios *ptVar4;\n  int *piVar5;\n  termios *ptVar6;\n  cc_t *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  termios *ptVar11;\n  int extraout_v1;\n  int iVar12;\n  tcflag_t tVar13;\n  tcflag_t tVar14;\n  tcflag_t tVar15;\n  uint uVar16;\n  uint uVar17;\n  char *pcVar18;\n  char *pcVar19;\n  FILE *unaff_s3;\n  uint unaff_s4;\n  termios *unaff_s5;\n  termios *unaff_s6;\n  int in_t9;\n  prompt_t *unaff_s8;\n  FILE *local_b0;\n  code *local_ac;\n  int *local_a4;\n  int local_a0;\n  termios oldmode;\n  termios newmode;\n  \n  piVar5 = *(int **)(&DAT_00033014 + in_t9);\n  iVar10 = *piVar5;\n  iVar12 = *(int *)(in_t9 + 0x32610);\n  if (p->n_prompts != 0) {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x32608) + -0x22a4);\n    uVar16 = 0;\n    do {\n      uVar17 = uVar16 + 1;\n      (**(code **)(&DAT_00032774 + in_t9))(p->prompts[uVar16],pcVar18);\n      uVar16 = uVar17;\n    } while (uVar17 < p->n_prompts);\n    if ((p->n_prompts != 0) && (iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0)) goto LAB_0007b02c;\n    iVar12 = *(int *)(in_t9 + 0x32610);\n  }\n  uVar17 = (**(code **)(&LAB_00032f58 + in_t9))(iVar12 + -0x7ccc,2);\n  if ((int)uVar17 < 0) {\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    uVar17 = 0;\n    local_b0 = (FILE *)*local_a4;\n  }\n  else {\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    local_b0 = (FILE *)(**(code **)(ssh2_kexinit_addalg + in_t9))\n                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c);\n  }\n  if (p->name_reqd != 0) {\n    pcVar18 = p->name;\n    if (pcVar18 != (char *)0x0) {\n      iVar12 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar18);\n      local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n      console_prompt_text(local_b0,pcVar18,iVar12);\n      unaff_s3 = local_b0;\n      if (p->name[iVar12 + -1] != '\n') {\n        (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n      }\n    }\n  }\n  pcVar19 = p->instruction;\n  pcVar18 = pcVar19;\n  if (pcVar19 != (char *)0x0) {\n    pcVar18 = (char *)(**(code **)(&LAB_00032f68 + in_t9))(pcVar19);\n    local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n    console_prompt_text(local_b0,pcVar19,(int)pcVar18);\n    unaff_s3 = local_b0;\n    if ((p->instruction + (int)pcVar18)[-1] != '\n') {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }\n  }\n  if (p->n_prompts == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = &oldmode;\n  unaff_s6 = &newmode;\n  local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n  unaff_s3 = (FILE *)(oldmode.c_cc + 0x1f);\n  pcVar18 = (char *)0xa;\n  local_a0 = *(int *)(in_t9 + 0x32608) + -0x2c;\n  do {\n    unaff_s8 = p->prompts[unaff_s4];\n    (**(code **)(&DAT_00032e78 + in_t9))(uVar17,unaff_s5);\n    ptVar6 = unaff_s5;\n    ptVar4 = unaff_s6;\n    do {\n      ptVar11 = ptVar4;\n      pcVar7 = &ptVar6->c_line;\n      tVar15 = ptVar6->c_oflag;\n      tVar14 = ptVar6->c_cflag;\n      tVar13 = ptVar6->c_lflag;\n      ptVar11->c_iflag = ptVar6->c_iflag;\n      ptVar11->c_oflag = tVar15;\n      ptVar11->c_cflag = tVar14;\n      ptVar11->c_lflag = tVar13;\n      ptVar6 = (termios *)pcVar7;\n      ptVar4 = (termios *)&ptVar11->c_line;\n    } while ((FILE *)pcVar7 != unaff_s3);\n    uVar1 = *(undefined1 *)((int)&unaff_s3->_flags + 1);\n    uVar2 = *(undefined1 *)((int)&unaff_s3->_flags + 2);\n    uVar3 = *(undefined1 *)((int)&unaff_s3->_flags + 3);\n    ptVar11->c_line = *(undefined1 *)&unaff_s3->_flags;\n    ptVar11->c_cc[0] = uVar1;\n    ptVar11->c_cc[1] = uVar2;\n    ptVar11->c_cc[2] = uVar3;\n    if (unaff_s8->echo == 0) {\n      newmode.c_lflag = newmode.c_lflag & 0xfffffff7 | 3;\n    }\n    else {\n      newmode.c_lflag = newmode.c_lflag | 0xb;\n    }\n    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s6);\n    pcVar19 = unaff_s8->prompt;\n    uVar8 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar19);\n    iVar12 = 0;\n    (*local_ac)(local_b0,pcVar19,uVar8);\n    while( true ) {\n      (**(code **)(&LAB_00032d78 + in_t9))(unaff_s8,(iVar12 * 5 >> 2) + 0x200);\n      iVar9 = (**(code **)(in_t9 + 0x33044))\n                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12);\n      if (iVar9 < 1) break;\n      iVar12 = iVar12 + iVar9;\n      if ((char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18) {\n        (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n        iVar12 = iVar12 + -1;\n        if (unaff_s8->echo == 0) goto LAB_0007b138;\n        goto LAB_0007b0bc;\n      }\n    }\n    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n    if (unaff_s8->echo == 0) {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }\n    if ((FILE *)*local_a4 != local_b0) {\n      (**(code **)(&DAT_00032ec4 + in_t9))();\n    }\n    iVar12 = 0;\nLAB_0007b02c:\n    while( true ) {\n      if (iVar10 == *piVar5) {\n        return iVar12;\n      }\n      (**(code **)(&DAT_00032fe4 + in_t9))();\n      iVar12 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\nLAB_0007b0bc:\n      unaff_s4 = unaff_s4 + 1;\n      unaff_s8->result[iVar12] = '\0';\n      if (unaff_s4 < p->n_prompts) break;\nLAB_0007b0dc:\n      if ((FILE *)*local_a4 == local_b0) {\n        iVar12 = 1;\n      }\n      else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }\n    }\n  } while( true );\n}" primitive_type (function_declarator "console_get_userpass_input(prompts_t *p,uchar *in,int inlen)" identifier (parameter_list "(prompts_t *p,uchar *in,int inlen)" ( (parameter_declaration "prompts_t *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "uchar *in" type_identifier (pointer_declarator "*in" * identifier)) , (parameter_declaration "int inlen" primitive_type identifier) ))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined1 uVar3;\n  termios *ptVar4;\n  int *piVar5;\n  termios *ptVar6;\n  cc_t *pcVar7;\n  undefined4 uVar8;\n  int iVar9;\n  int iVar10;\n  termios *ptVar11;\n  int extraout_v1;\n  int iVar12;\n  tcflag_t tVar13;\n  tcflag_t tVar14;\n  tcflag_t tVar15;\n  uint uVar16;\n  uint uVar17;\n  char *pcVar18;\n  char *pcVar19;\n  FILE *unaff_s3;\n  uint unaff_s4;\n  termios *unaff_s5;\n  termios *unaff_s6;\n  int in_t9;\n  prompt_t *unaff_s8;\n  FILE *local_b0;\n  code *local_ac;\n  int *local_a4;\n  int local_a0;\n  termios oldmode;\n  termios newmode;\n  \n  piVar5 = *(int **)(&DAT_00033014 + in_t9);\n  iVar10 = *piVar5;\n  iVar12 = *(int *)(in_t9 + 0x32610);\n  if (p->n_prompts != 0) {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x32608) + -0x22a4);\n    uVar16 = 0;\n    do {\n      uVar17 = uVar16 + 1;\n      (**(code **)(&DAT_00032774 + in_t9))(p->prompts[uVar16],pcVar18);\n      uVar16 = uVar17;\n    } while (uVar17 < p->n_prompts);\n    if ((p->n_prompts != 0) && (iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0)) goto LAB_0007b02c;\n    iVar12 = *(int *)(in_t9 + 0x32610);\n  }\n  uVar17 = (**(code **)(&LAB_00032f58 + in_t9))(iVar12 + -0x7ccc,2);\n  if ((int)uVar17 < 0) {\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    uVar17 = 0;\n    local_b0 = (FILE *)*local_a4;\n  }\n  else {\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    local_b0 = (FILE *)(**(code **)(ssh2_kexinit_addalg + in_t9))\n                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c);\n  }\n  if (p->name_reqd != 0) {\n    pcVar18 = p->name;\n    if (pcVar18 != (char *)0x0) {\n      iVar12 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar18);\n      local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n      console_prompt_text(local_b0,pcVar18,iVar12);\n      unaff_s3 = local_b0;\n      if (p->name[iVar12 + -1] != '\n') {\n        (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n      }\n    }\n  }\n  pcVar19 = p->instruction;\n  pcVar18 = pcVar19;\n  if (pcVar19 != (char *)0x0) {\n    pcVar18 = (char *)(**(code **)(&LAB_00032f68 + in_t9))(pcVar19);\n    local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n    console_prompt_text(local_b0,pcVar19,(int)pcVar18);\n    unaff_s3 = local_b0;\n    if ((p->instruction + (int)pcVar18)[-1] != '\n') {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }\n  }\n  if (p->n_prompts == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = &oldmode;\n  unaff_s6 = &newmode;\n  local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n  unaff_s3 = (FILE *)(oldmode.c_cc + 0x1f);\n  pcVar18 = (char *)0xa;\n  local_a0 = *(int *)(in_t9 + 0x32608) + -0x2c;\n  do {\n    unaff_s8 = p->prompts[unaff_s4];\n    (**(code **)(&DAT_00032e78 + in_t9))(uVar17,unaff_s5);\n    ptVar6 = unaff_s5;\n    ptVar4 = unaff_s6;\n    do {\n      ptVar11 = ptVar4;\n      pcVar7 = &ptVar6->c_line;\n      tVar15 = ptVar6->c_oflag;\n      tVar14 = ptVar6->c_cflag;\n      tVar13 = ptVar6->c_lflag;\n      ptVar11->c_iflag = ptVar6->c_iflag;\n      ptVar11->c_oflag = tVar15;\n      ptVar11->c_cflag = tVar14;\n      ptVar11->c_lflag = tVar13;\n      ptVar6 = (termios *)pcVar7;\n      ptVar4 = (termios *)&ptVar11->c_line;\n    } while ((FILE *)pcVar7 != unaff_s3);\n    uVar1 = *(undefined1 *)((int)&unaff_s3->_flags + 1);\n    uVar2 = *(undefined1 *)((int)&unaff_s3->_flags + 2);\n    uVar3 = *(undefined1 *)((int)&unaff_s3->_flags + 3);\n    ptVar11->c_line = *(undefined1 *)&unaff_s3->_flags;\n    ptVar11->c_cc[0] = uVar1;\n    ptVar11->c_cc[1] = uVar2;\n    ptVar11->c_cc[2] = uVar3;\n    if (unaff_s8->echo == 0) {\n      newmode.c_lflag = newmode.c_lflag & 0xfffffff7 | 3;\n    }\n    else {\n      newmode.c_lflag = newmode.c_lflag | 0xb;\n    }\n    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s6);\n    pcVar19 = unaff_s8->prompt;\n    uVar8 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar19);\n    iVar12 = 0;\n    (*local_ac)(local_b0,pcVar19,uVar8);\n    while( true ) {\n      (**(code **)(&LAB_00032d78 + in_t9))(unaff_s8,(iVar12 * 5 >> 2) + 0x200);\n      iVar9 = (**(code **)(in_t9 + 0x33044))\n                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12);\n      if (iVar9 < 1) break;\n      iVar12 = iVar12 + iVar9;\n      if ((char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18) {\n        (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n        iVar12 = iVar12 + -1;\n        if (unaff_s8->echo == 0) goto LAB_0007b138;\n        goto LAB_0007b0bc;\n      }\n    }\n    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n    if (unaff_s8->echo == 0) {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }\n    if ((FILE *)*local_a4 != local_b0) {\n      (**(code **)(&DAT_00032ec4 + in_t9))();\n    }\n    iVar12 = 0;\nLAB_0007b02c:\n    while( true ) {\n      if (iVar10 == *piVar5) {\n        return iVar12;\n      }\n      (**(code **)(&DAT_00032fe4 + in_t9))();\n      iVar12 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\nLAB_0007b0bc:\n      unaff_s4 = unaff_s4 + 1;\n      unaff_s8->result[iVar12] = '\0';\n      if (unaff_s4 < p->n_prompts) break;\nLAB_0007b0dc:\n      if ((FILE *)*local_a4 == local_b0) {\n        iVar12 = 1;\n      }\n      else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }\n    }\n  } while( true );\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "undefined1 uVar3;" type_identifier identifier ;) (declaration "termios *ptVar4;" type_identifier (pointer_declarator "*ptVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "termios *ptVar6;" type_identifier (pointer_declarator "*ptVar6" * identifier) ;) (declaration "cc_t *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "termios *ptVar11;" type_identifier (pointer_declarator "*ptVar11" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "tcflag_t tVar13;" type_identifier identifier ;) (declaration "tcflag_t tVar14;" type_identifier identifier ;) (declaration "tcflag_t tVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "FILE *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint unaff_s4;" type_identifier identifier ;) (declaration "termios *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "termios *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "prompt_t *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "FILE *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "code *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "int *local_a4;" primitive_type (pointer_declarator "*local_a4" * identifier) ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "termios oldmode;" type_identifier identifier ;) (declaration "termios newmode;" type_identifier identifier ;) (expression_statement "piVar5 = *(int **)(&DAT_00033014 + in_t9);" (assignment_expression "piVar5 = *(int **)(&DAT_00033014 + in_t9)" identifier = (pointer_expression "*(int **)(&DAT_00033014 + in_t9)" * (cast_expression "(int **)(&DAT_00033014 + in_t9)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00033014 + in_t9)" ( (binary_expression "&DAT_00033014 + in_t9" (pointer_expression "&DAT_00033014" & identifier) + identifier) ))))) ;) (expression_statement "iVar10 = *piVar5;" (assignment_expression "iVar10 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "iVar12 = *(int *)(in_t9 + 0x32610);" (assignment_expression "iVar12 = *(int *)(in_t9 + 0x32610)" identifier = (pointer_expression "*(int *)(in_t9 + 0x32610)" * (cast_expression "(int *)(in_t9 + 0x32610)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32610)" ( (binary_expression "in_t9 + 0x32610" identifier + number_literal) ))))) ;) (if_statement "if (p->n_prompts != 0) {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x32608) + -0x22a4);\n    uVar16 = 0;\n    do {\n      uVar17 = uVar16 + 1;\n      (**(code **)(&DAT_00032774 + in_t9))(p->prompts[uVar16],pcVar18);\n      uVar16 = uVar17;\n    } while (uVar17 < p->n_prompts);\n    if ((p->n_prompts != 0) && (iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0)) goto LAB_0007b02c;\n    iVar12 = *(int *)(in_t9 + 0x32610);\n  }" if (parenthesized_expression "(p->n_prompts != 0)" ( (binary_expression "p->n_prompts != 0" (field_expression "p->n_prompts" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x32608) + -0x22a4);\n    uVar16 = 0;\n    do {\n      uVar17 = uVar16 + 1;\n      (**(code **)(&DAT_00032774 + in_t9))(p->prompts[uVar16],pcVar18);\n      uVar16 = uVar17;\n    } while (uVar17 < p->n_prompts);\n    if ((p->n_prompts != 0) && (iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0)) goto LAB_0007b02c;\n    iVar12 = *(int *)(in_t9 + 0x32610);\n  }" { (expression_statement "pcVar18 = (char *)(*(int *)(in_t9 + 0x32608) + -0x22a4);" (assignment_expression "pcVar18 = (char *)(*(int *)(in_t9 + 0x32608) + -0x22a4)" identifier = (cast_expression "(char *)(*(int *)(in_t9 + 0x32608) + -0x22a4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x32608) + -0x22a4)" ( (binary_expression "*(int *)(in_t9 + 0x32608) + -0x22a4" (pointer_expression "*(int *)(in_t9 + 0x32608)" * (cast_expression "(int *)(in_t9 + 0x32608)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32608)" ( (binary_expression "in_t9 + 0x32608" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar17 = uVar16 + 1;\n      (**(code **)(&DAT_00032774 + in_t9))(p->prompts[uVar16],pcVar18);\n      uVar16 = uVar17;\n    } while (uVar17 < p->n_prompts);" do (compound_statement "{\n      uVar17 = uVar16 + 1;\n      (**(code **)(&DAT_00032774 + in_t9))(p->prompts[uVar16],pcVar18);\n      uVar16 = uVar17;\n    }" { (expression_statement "uVar17 = uVar16 + 1;" (assignment_expression "uVar17 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(&DAT_00032774 + in_t9))(p->prompts[uVar16],pcVar18);" (call_expression "(**(code **)(&DAT_00032774 + in_t9))(p->prompts[uVar16],pcVar18)" (parenthesized_expression "(**(code **)(&DAT_00032774 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00032774 + in_t9)" * (pointer_expression "*(code **)(&DAT_00032774 + in_t9)" * (cast_expression "(code **)(&DAT_00032774 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00032774 + in_t9)" ( (binary_expression "&DAT_00032774 + in_t9" (pointer_expression "&DAT_00032774" & identifier) + identifier) ))))) )) (argument_list "(p->prompts[uVar16],pcVar18)" ( (subscript_expression "p->prompts[uVar16]" (field_expression "p->prompts" identifier -> field_identifier) [ identifier ]) , identifier ))) ;) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) }) while (parenthesized_expression "(uVar17 < p->n_prompts)" ( (binary_expression "uVar17 < p->n_prompts" identifier < (field_expression "p->n_prompts" identifier -> field_identifier)) )) ;) (if_statement "if ((p->n_prompts != 0) && (iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0)) goto LAB_0007b02c;" if (parenthesized_expression "((p->n_prompts != 0) && (iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0))" ( (binary_expression "(p->n_prompts != 0) && (iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0)" (parenthesized_expression "(p->n_prompts != 0)" ( (binary_expression "p->n_prompts != 0" (field_expression "p->n_prompts" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "(iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0)" ( (comma_expression "iVar12 = 0, **(int **)(in_t9 + 0x326a8) != 0" (assignment_expression "iVar12 = 0" identifier = number_literal) , (binary_expression "**(int **)(in_t9 + 0x326a8) != 0" (pointer_expression "**(int **)(in_t9 + 0x326a8)" * (pointer_expression "*(int **)(in_t9 + 0x326a8)" * (cast_expression "(int **)(in_t9 + 0x326a8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x326a8)" ( (binary_expression "in_t9 + 0x326a8" identifier + number_literal) ))))) != number_literal)) ))) )) (goto_statement "goto LAB_0007b02c;" goto statement_identifier ;)) (expression_statement "iVar12 = *(int *)(in_t9 + 0x32610);" (assignment_expression "iVar12 = *(int *)(in_t9 + 0x32610)" identifier = (pointer_expression "*(int *)(in_t9 + 0x32610)" * (cast_expression "(int *)(in_t9 + 0x32610)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32610)" ( (binary_expression "in_t9 + 0x32610" identifier + number_literal) ))))) ;) })) (expression_statement "uVar17 = (**(code **)(&LAB_00032f58 + in_t9))(iVar12 + -0x7ccc,2);" (assignment_expression "uVar17 = (**(code **)(&LAB_00032f58 + in_t9))(iVar12 + -0x7ccc,2)" identifier = (call_expression "(**(code **)(&LAB_00032f58 + in_t9))(iVar12 + -0x7ccc,2)" (parenthesized_expression "(**(code **)(&LAB_00032f58 + in_t9))" ( (pointer_expression "**(code **)(&LAB_00032f58 + in_t9)" * (pointer_expression "*(code **)(&LAB_00032f58 + in_t9)" * (cast_expression "(code **)(&LAB_00032f58 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00032f58 + in_t9)" ( (binary_expression "&LAB_00032f58 + in_t9" (pointer_expression "&LAB_00032f58" & identifier) + identifier) ))))) )) (argument_list "(iVar12 + -0x7ccc,2)" ( (binary_expression "iVar12 + -0x7ccc" identifier + number_literal) , number_literal )))) ;) (if_statement "if ((int)uVar17 < 0) {\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    uVar17 = 0;\n    local_b0 = (FILE *)*local_a4;\n  }\n  else {\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    local_b0 = (FILE *)(**(code **)(ssh2_kexinit_addalg + in_t9))\n                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c);\n  }" if (parenthesized_expression "((int)uVar17 < 0)" ( (binary_expression "(int)uVar17 < 0" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    uVar17 = 0;\n    local_b0 = (FILE *)*local_a4;\n  }" { (expression_statement "local_a4 = *(int **)(&LAB_00033030 + in_t9);" (assignment_expression "local_a4 = *(int **)(&LAB_00033030 + in_t9)" identifier = (pointer_expression "*(int **)(&LAB_00033030 + in_t9)" * (cast_expression "(int **)(&LAB_00033030 + in_t9)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00033030 + in_t9)" ( (binary_expression "&LAB_00033030 + in_t9" (pointer_expression "&LAB_00033030" & identifier) + identifier) ))))) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = (FILE *)*local_a4;" (assignment_expression "local_b0 = (FILE *)*local_a4" identifier = (cast_expression "(FILE *)*local_a4" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_a4" * identifier))) ;) }) (else_clause "else {\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    local_b0 = (FILE *)(**(code **)(ssh2_kexinit_addalg + in_t9))\n                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c);\n  }" else (compound_statement "{\n    local_a4 = *(int **)(&LAB_00033030 + in_t9);\n    local_b0 = (FILE *)(**(code **)(ssh2_kexinit_addalg + in_t9))\n                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c);\n  }" { (expression_statement "local_a4 = *(int **)(&LAB_00033030 + in_t9);" (assignment_expression "local_a4 = *(int **)(&LAB_00033030 + in_t9)" identifier = (pointer_expression "*(int **)(&LAB_00033030 + in_t9)" * (cast_expression "(int **)(&LAB_00033030 + in_t9)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00033030 + in_t9)" ( (binary_expression "&LAB_00033030 + in_t9" (pointer_expression "&LAB_00033030" & identifier) + identifier) ))))) ;) (expression_statement "local_b0 = (FILE *)(**(code **)(ssh2_kexinit_addalg + in_t9))\n                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c);" (assignment_expression "local_b0 = (FILE *)(**(code **)(ssh2_kexinit_addalg + in_t9))\n                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c)" identifier = (cast_expression "(FILE *)(**(code **)(ssh2_kexinit_addalg + in_t9))\n                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(ssh2_kexinit_addalg + in_t9))\n                                 (uVar17,*(int *)(in_t9 + 0x32608) + 0x632c)" (parenthesized_expression "(**(code **)(ssh2_kexinit_addalg + in_t9))" ( (pointer_expression "**(code **)(ssh2_kexinit_addalg + in_t9)" * (pointer_expression "*(code **)(ssh2_kexinit_addalg + in_t9)" * (cast_expression "(code **)(ssh2_kexinit_addalg + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(ssh2_kexinit_addalg + in_t9)" ( (binary_expression "ssh2_kexinit_addalg + in_t9" identifier + identifier) ))))) )) (argument_list "(uVar17,*(int *)(in_t9 + 0x32608) + 0x632c)" ( identifier , (binary_expression "*(int *)(in_t9 + 0x32608) + 0x632c" (pointer_expression "*(int *)(in_t9 + 0x32608)" * (cast_expression "(int *)(in_t9 + 0x32608)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32608)" ( (binary_expression "in_t9 + 0x32608" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (if_statement "if (p->name_reqd != 0) {\n    pcVar18 = p->name;\n    if (pcVar18 != (char *)0x0) {\n      iVar12 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar18);\n      local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n      console_prompt_text(local_b0,pcVar18,iVar12);\n      unaff_s3 = local_b0;\n      if (p->name[iVar12 + -1] != '\n') {\n        (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n      }\n    }\n  }" if (parenthesized_expression "(p->name_reqd != 0)" ( (binary_expression "p->name_reqd != 0" (field_expression "p->name_reqd" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    pcVar18 = p->name;\n    if (pcVar18 != (char *)0x0) {\n      iVar12 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar18);\n      local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n      console_prompt_text(local_b0,pcVar18,iVar12);\n      unaff_s3 = local_b0;\n      if (p->name[iVar12 + -1] != '\n') {\n        (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n      }\n    }\n  }" { (expression_statement "pcVar18 = p->name;" (assignment_expression "pcVar18 = p->name" identifier = (field_expression "p->name" identifier -> field_identifier)) ;) (if_statement "if (pcVar18 != (char *)0x0) {\n      iVar12 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar18);\n      local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n      console_prompt_text(local_b0,pcVar18,iVar12);\n      unaff_s3 = local_b0;\n      if (p->name[iVar12 + -1] != '\n') {\n        (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n      }\n    }" if (parenthesized_expression "(pcVar18 != (char *)0x0)" ( (binary_expression "pcVar18 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar12 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar18);\n      local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n      console_prompt_text(local_b0,pcVar18,iVar12);\n      unaff_s3 = local_b0;\n      if (p->name[iVar12 + -1] != '\n') {\n        (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n      }\n    }" { (expression_statement "iVar12 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar18);" (assignment_expression "iVar12 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar18)" identifier = (call_expression "(**(code **)(&LAB_00032f68 + in_t9))(pcVar18)" (parenthesized_expression "(**(code **)(&LAB_00032f68 + in_t9))" ( (pointer_expression "**(code **)(&LAB_00032f68 + in_t9)" * (pointer_expression "*(code **)(&LAB_00032f68 + in_t9)" * (cast_expression "(code **)(&LAB_00032f68 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00032f68 + in_t9)" ( (binary_expression "&LAB_00032f68 + in_t9" (pointer_expression "&LAB_00032f68" & identifier) + identifier) ))))) )) (argument_list "(pcVar18)" ( identifier )))) ;) (expression_statement "local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);" (assignment_expression "local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230)" identifier = (cast_expression "(code *)(*(int *)(in_t9 + 0x32638) + -0x6230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x32638) + -0x6230)" ( (binary_expression "*(int *)(in_t9 + 0x32638) + -0x6230" (pointer_expression "*(int *)(in_t9 + 0x32638)" * (cast_expression "(int *)(in_t9 + 0x32638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32638)" ( (binary_expression "in_t9 + 0x32638" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "console_prompt_text(local_b0,pcVar18,iVar12);" (call_expression "console_prompt_text(local_b0,pcVar18,iVar12)" identifier (argument_list "(local_b0,pcVar18,iVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s3 = local_b0;" (assignment_expression "unaff_s3 = local_b0" identifier = identifier) ;) (if_statement "if (p->name[iVar12 + -1] != '\n') {\n        (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n      }" if (parenthesized_expression "(p->name[iVar12 + -1] != '\n')" ( (binary_expression "p->name[iVar12 + -1] != '\n'" (subscript_expression "p->name[iVar12 + -1]" (field_expression "p->name" identifier -> field_identifier) [ (binary_expression "iVar12 + -1" identifier + number_literal) ]) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n        (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n      }" { (expression_statement "(*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);" (call_expression "(*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1)" ( identifier , (binary_expression "*(int *)(in_t9 + 0x32608) + -0x2c" (pointer_expression "*(int *)(in_t9 + 0x32608)" * (cast_expression "(int *)(in_t9 + 0x32608)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32608)" ( (binary_expression "in_t9 + 0x32608" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) })) })) (expression_statement "pcVar19 = p->instruction;" (assignment_expression "pcVar19 = p->instruction" identifier = (field_expression "p->instruction" identifier -> field_identifier)) ;) (expression_statement "pcVar18 = pcVar19;" (assignment_expression "pcVar18 = pcVar19" identifier = identifier) ;) (if_statement "if (pcVar19 != (char *)0x0) {\n    pcVar18 = (char *)(**(code **)(&LAB_00032f68 + in_t9))(pcVar19);\n    local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n    console_prompt_text(local_b0,pcVar19,(int)pcVar18);\n    unaff_s3 = local_b0;\n    if ((p->instruction + (int)pcVar18)[-1] != '\n') {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }\n  }" if (parenthesized_expression "(pcVar19 != (char *)0x0)" ( (binary_expression "pcVar19 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar18 = (char *)(**(code **)(&LAB_00032f68 + in_t9))(pcVar19);\n    local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);\n    console_prompt_text(local_b0,pcVar19,(int)pcVar18);\n    unaff_s3 = local_b0;\n    if ((p->instruction + (int)pcVar18)[-1] != '\n') {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }\n  }" { (expression_statement "pcVar18 = (char *)(**(code **)(&LAB_00032f68 + in_t9))(pcVar19);" (assignment_expression "pcVar18 = (char *)(**(code **)(&LAB_00032f68 + in_t9))(pcVar19)" identifier = (cast_expression "(char *)(**(code **)(&LAB_00032f68 + in_t9))(pcVar19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(&LAB_00032f68 + in_t9))(pcVar19)" (parenthesized_expression "(**(code **)(&LAB_00032f68 + in_t9))" ( (pointer_expression "**(code **)(&LAB_00032f68 + in_t9)" * (pointer_expression "*(code **)(&LAB_00032f68 + in_t9)" * (cast_expression "(code **)(&LAB_00032f68 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00032f68 + in_t9)" ( (binary_expression "&LAB_00032f68 + in_t9" (pointer_expression "&LAB_00032f68" & identifier) + identifier) ))))) )) (argument_list "(pcVar19)" ( identifier ))))) ;) (expression_statement "local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);" (assignment_expression "local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230)" identifier = (cast_expression "(code *)(*(int *)(in_t9 + 0x32638) + -0x6230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x32638) + -0x6230)" ( (binary_expression "*(int *)(in_t9 + 0x32638) + -0x6230" (pointer_expression "*(int *)(in_t9 + 0x32638)" * (cast_expression "(int *)(in_t9 + 0x32638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32638)" ( (binary_expression "in_t9 + 0x32638" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "console_prompt_text(local_b0,pcVar19,(int)pcVar18);" (call_expression "console_prompt_text(local_b0,pcVar19,(int)pcVar18)" identifier (argument_list "(local_b0,pcVar19,(int)pcVar18)" ( identifier , identifier , (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "unaff_s3 = local_b0;" (assignment_expression "unaff_s3 = local_b0" identifier = identifier) ;) (if_statement "if ((p->instruction + (int)pcVar18)[-1] != '\n') {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }" if (parenthesized_expression "((p->instruction + (int)pcVar18)[-1] != '\n')" ( (binary_expression "(p->instruction + (int)pcVar18)[-1] != '\n'" (subscript_expression "(p->instruction + (int)pcVar18)[-1]" (parenthesized_expression "(p->instruction + (int)pcVar18)" ( (binary_expression "p->instruction + (int)pcVar18" (field_expression "p->instruction" identifier -> field_identifier) + (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) [ number_literal ]) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }" { (expression_statement "(*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);" (call_expression "(*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1)" ( identifier , (binary_expression "*(int *)(in_t9 + 0x32608) + -0x2c" (pointer_expression "*(int *)(in_t9 + 0x32608)" * (cast_expression "(int *)(in_t9 + 0x32608)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32608)" ( (binary_expression "in_t9 + 0x32608" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) })) (if_statement "if (p->n_prompts == 0) goto LAB_0007b0dc;" if (parenthesized_expression "(p->n_prompts == 0)" ( (binary_expression "p->n_prompts == 0" (field_expression "p->n_prompts" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0007b0dc;" goto statement_identifier ;)) (expression_statement "unaff_s4 = 0;" (assignment_expression "unaff_s4 = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = &oldmode;" (assignment_expression "unaff_s5 = &oldmode" identifier = (pointer_expression "&oldmode" & identifier)) ;) (expression_statement "unaff_s6 = &newmode;" (assignment_expression "unaff_s6 = &newmode" identifier = (pointer_expression "&newmode" & identifier)) ;) (expression_statement "local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230);" (assignment_expression "local_ac = (code *)(*(int *)(in_t9 + 0x32638) + -0x6230)" identifier = (cast_expression "(code *)(*(int *)(in_t9 + 0x32638) + -0x6230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x32638) + -0x6230)" ( (binary_expression "*(int *)(in_t9 + 0x32638) + -0x6230" (pointer_expression "*(int *)(in_t9 + 0x32638)" * (cast_expression "(int *)(in_t9 + 0x32638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32638)" ( (binary_expression "in_t9 + 0x32638" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "unaff_s3 = (FILE *)(oldmode.c_cc + 0x1f);" (assignment_expression "unaff_s3 = (FILE *)(oldmode.c_cc + 0x1f)" identifier = (cast_expression "(FILE *)(oldmode.c_cc + 0x1f)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(oldmode.c_cc + 0x1f)" ( (binary_expression "oldmode.c_cc + 0x1f" (field_expression "oldmode.c_cc" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "pcVar18 = (char *)0xa;" (assignment_expression "pcVar18 = (char *)0xa" identifier = (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a0 = *(int *)(in_t9 + 0x32608) + -0x2c;" (assignment_expression "local_a0 = *(int *)(in_t9 + 0x32608) + -0x2c" identifier = (binary_expression "*(int *)(in_t9 + 0x32608) + -0x2c" (pointer_expression "*(int *)(in_t9 + 0x32608)" * (cast_expression "(int *)(in_t9 + 0x32608)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32608)" ( (binary_expression "in_t9 + 0x32608" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n    unaff_s8 = p->prompts[unaff_s4];\n    (**(code **)(&DAT_00032e78 + in_t9))(uVar17,unaff_s5);\n    ptVar6 = unaff_s5;\n    ptVar4 = unaff_s6;\n    do {\n      ptVar11 = ptVar4;\n      pcVar7 = &ptVar6->c_line;\n      tVar15 = ptVar6->c_oflag;\n      tVar14 = ptVar6->c_cflag;\n      tVar13 = ptVar6->c_lflag;\n      ptVar11->c_iflag = ptVar6->c_iflag;\n      ptVar11->c_oflag = tVar15;\n      ptVar11->c_cflag = tVar14;\n      ptVar11->c_lflag = tVar13;\n      ptVar6 = (termios *)pcVar7;\n      ptVar4 = (termios *)&ptVar11->c_line;\n    } while ((FILE *)pcVar7 != unaff_s3);\n    uVar1 = *(undefined1 *)((int)&unaff_s3->_flags + 1);\n    uVar2 = *(undefined1 *)((int)&unaff_s3->_flags + 2);\n    uVar3 = *(undefined1 *)((int)&unaff_s3->_flags + 3);\n    ptVar11->c_line = *(undefined1 *)&unaff_s3->_flags;\n    ptVar11->c_cc[0] = uVar1;\n    ptVar11->c_cc[1] = uVar2;\n    ptVar11->c_cc[2] = uVar3;\n    if (unaff_s8->echo == 0) {\n      newmode.c_lflag = newmode.c_lflag & 0xfffffff7 | 3;\n    }\n    else {\n      newmode.c_lflag = newmode.c_lflag | 0xb;\n    }\n    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s6);\n    pcVar19 = unaff_s8->prompt;\n    uVar8 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar19);\n    iVar12 = 0;\n    (*local_ac)(local_b0,pcVar19,uVar8);\n    while( true ) {\n      (**(code **)(&LAB_00032d78 + in_t9))(unaff_s8,(iVar12 * 5 >> 2) + 0x200);\n      iVar9 = (**(code **)(in_t9 + 0x33044))\n                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12);\n      if (iVar9 < 1) break;\n      iVar12 = iVar12 + iVar9;\n      if ((char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18) {\n        (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n        iVar12 = iVar12 + -1;\n        if (unaff_s8->echo == 0) goto LAB_0007b138;\n        goto LAB_0007b0bc;\n      }\n    }\n    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n    if (unaff_s8->echo == 0) {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }\n    if ((FILE *)*local_a4 != local_b0) {\n      (**(code **)(&DAT_00032ec4 + in_t9))();\n    }\n    iVar12 = 0;\nLAB_0007b02c:\n    while( true ) {\n      if (iVar10 == *piVar5) {\n        return iVar12;\n      }\n      (**(code **)(&DAT_00032fe4 + in_t9))();\n      iVar12 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\nLAB_0007b0bc:\n      unaff_s4 = unaff_s4 + 1;\n      unaff_s8->result[iVar12] = '\0';\n      if (unaff_s4 < p->n_prompts) break;\nLAB_0007b0dc:\n      if ((FILE *)*local_a4 == local_b0) {\n        iVar12 = 1;\n      }\n      else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }\n    }\n  } while( true );" do (compound_statement "{\n    unaff_s8 = p->prompts[unaff_s4];\n    (**(code **)(&DAT_00032e78 + in_t9))(uVar17,unaff_s5);\n    ptVar6 = unaff_s5;\n    ptVar4 = unaff_s6;\n    do {\n      ptVar11 = ptVar4;\n      pcVar7 = &ptVar6->c_line;\n      tVar15 = ptVar6->c_oflag;\n      tVar14 = ptVar6->c_cflag;\n      tVar13 = ptVar6->c_lflag;\n      ptVar11->c_iflag = ptVar6->c_iflag;\n      ptVar11->c_oflag = tVar15;\n      ptVar11->c_cflag = tVar14;\n      ptVar11->c_lflag = tVar13;\n      ptVar6 = (termios *)pcVar7;\n      ptVar4 = (termios *)&ptVar11->c_line;\n    } while ((FILE *)pcVar7 != unaff_s3);\n    uVar1 = *(undefined1 *)((int)&unaff_s3->_flags + 1);\n    uVar2 = *(undefined1 *)((int)&unaff_s3->_flags + 2);\n    uVar3 = *(undefined1 *)((int)&unaff_s3->_flags + 3);\n    ptVar11->c_line = *(undefined1 *)&unaff_s3->_flags;\n    ptVar11->c_cc[0] = uVar1;\n    ptVar11->c_cc[1] = uVar2;\n    ptVar11->c_cc[2] = uVar3;\n    if (unaff_s8->echo == 0) {\n      newmode.c_lflag = newmode.c_lflag & 0xfffffff7 | 3;\n    }\n    else {\n      newmode.c_lflag = newmode.c_lflag | 0xb;\n    }\n    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s6);\n    pcVar19 = unaff_s8->prompt;\n    uVar8 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar19);\n    iVar12 = 0;\n    (*local_ac)(local_b0,pcVar19,uVar8);\n    while( true ) {\n      (**(code **)(&LAB_00032d78 + in_t9))(unaff_s8,(iVar12 * 5 >> 2) + 0x200);\n      iVar9 = (**(code **)(in_t9 + 0x33044))\n                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12);\n      if (iVar9 < 1) break;\n      iVar12 = iVar12 + iVar9;\n      if ((char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18) {\n        (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n        iVar12 = iVar12 + -1;\n        if (unaff_s8->echo == 0) goto LAB_0007b138;\n        goto LAB_0007b0bc;\n      }\n    }\n    (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n    if (unaff_s8->echo == 0) {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }\n    if ((FILE *)*local_a4 != local_b0) {\n      (**(code **)(&DAT_00032ec4 + in_t9))();\n    }\n    iVar12 = 0;\nLAB_0007b02c:\n    while( true ) {\n      if (iVar10 == *piVar5) {\n        return iVar12;\n      }\n      (**(code **)(&DAT_00032fe4 + in_t9))();\n      iVar12 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\nLAB_0007b0bc:\n      unaff_s4 = unaff_s4 + 1;\n      unaff_s8->result[iVar12] = '\0';\n      if (unaff_s4 < p->n_prompts) break;\nLAB_0007b0dc:\n      if ((FILE *)*local_a4 == local_b0) {\n        iVar12 = 1;\n      }\n      else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }\n    }\n  }" { (expression_statement "unaff_s8 = p->prompts[unaff_s4];" (assignment_expression "unaff_s8 = p->prompts[unaff_s4]" identifier = (subscript_expression "p->prompts[unaff_s4]" (field_expression "p->prompts" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "(**(code **)(&DAT_00032e78 + in_t9))(uVar17,unaff_s5);" (call_expression "(**(code **)(&DAT_00032e78 + in_t9))(uVar17,unaff_s5)" (parenthesized_expression "(**(code **)(&DAT_00032e78 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00032e78 + in_t9)" * (pointer_expression "*(code **)(&DAT_00032e78 + in_t9)" * (cast_expression "(code **)(&DAT_00032e78 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00032e78 + in_t9)" ( (binary_expression "&DAT_00032e78 + in_t9" (pointer_expression "&DAT_00032e78" & identifier) + identifier) ))))) )) (argument_list "(uVar17,unaff_s5)" ( identifier , identifier ))) ;) (expression_statement "ptVar6 = unaff_s5;" (assignment_expression "ptVar6 = unaff_s5" identifier = identifier) ;) (expression_statement "ptVar4 = unaff_s6;" (assignment_expression "ptVar4 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n      ptVar11 = ptVar4;\n      pcVar7 = &ptVar6->c_line;\n      tVar15 = ptVar6->c_oflag;\n      tVar14 = ptVar6->c_cflag;\n      tVar13 = ptVar6->c_lflag;\n      ptVar11->c_iflag = ptVar6->c_iflag;\n      ptVar11->c_oflag = tVar15;\n      ptVar11->c_cflag = tVar14;\n      ptVar11->c_lflag = tVar13;\n      ptVar6 = (termios *)pcVar7;\n      ptVar4 = (termios *)&ptVar11->c_line;\n    } while ((FILE *)pcVar7 != unaff_s3);" do (compound_statement "{\n      ptVar11 = ptVar4;\n      pcVar7 = &ptVar6->c_line;\n      tVar15 = ptVar6->c_oflag;\n      tVar14 = ptVar6->c_cflag;\n      tVar13 = ptVar6->c_lflag;\n      ptVar11->c_iflag = ptVar6->c_iflag;\n      ptVar11->c_oflag = tVar15;\n      ptVar11->c_cflag = tVar14;\n      ptVar11->c_lflag = tVar13;\n      ptVar6 = (termios *)pcVar7;\n      ptVar4 = (termios *)&ptVar11->c_line;\n    }" { (expression_statement "ptVar11 = ptVar4;" (assignment_expression "ptVar11 = ptVar4" identifier = identifier) ;) (expression_statement "pcVar7 = &ptVar6->c_line;" (assignment_expression "pcVar7 = &ptVar6->c_line" identifier = (pointer_expression "&ptVar6->c_line" & (field_expression "ptVar6->c_line" identifier -> field_identifier))) ;) (expression_statement "tVar15 = ptVar6->c_oflag;" (assignment_expression "tVar15 = ptVar6->c_oflag" identifier = (field_expression "ptVar6->c_oflag" identifier -> field_identifier)) ;) (expression_statement "tVar14 = ptVar6->c_cflag;" (assignment_expression "tVar14 = ptVar6->c_cflag" identifier = (field_expression "ptVar6->c_cflag" identifier -> field_identifier)) ;) (expression_statement "tVar13 = ptVar6->c_lflag;" (assignment_expression "tVar13 = ptVar6->c_lflag" identifier = (field_expression "ptVar6->c_lflag" identifier -> field_identifier)) ;) (expression_statement "ptVar11->c_iflag = ptVar6->c_iflag;" (assignment_expression "ptVar11->c_iflag = ptVar6->c_iflag" (field_expression "ptVar11->c_iflag" identifier -> field_identifier) = (field_expression "ptVar6->c_iflag" identifier -> field_identifier)) ;) (expression_statement "ptVar11->c_oflag = tVar15;" (assignment_expression "ptVar11->c_oflag = tVar15" (field_expression "ptVar11->c_oflag" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar11->c_cflag = tVar14;" (assignment_expression "ptVar11->c_cflag = tVar14" (field_expression "ptVar11->c_cflag" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar11->c_lflag = tVar13;" (assignment_expression "ptVar11->c_lflag = tVar13" (field_expression "ptVar11->c_lflag" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar6 = (termios *)pcVar7;" (assignment_expression "ptVar6 = (termios *)pcVar7" identifier = (cast_expression "(termios *)pcVar7" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ptVar4 = (termios *)&ptVar11->c_line;" (assignment_expression "ptVar4 = (termios *)&ptVar11->c_line" identifier = (cast_expression "(termios *)&ptVar11->c_line" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ptVar11->c_line" & (field_expression "ptVar11->c_line" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "((FILE *)pcVar7 != unaff_s3)" ( (binary_expression "(FILE *)pcVar7 != unaff_s3" (cast_expression "(FILE *)pcVar7" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) (expression_statement "uVar1 = *(undefined1 *)((int)&unaff_s3->_flags + 1);" (assignment_expression "uVar1 = *(undefined1 *)((int)&unaff_s3->_flags + 1)" identifier = (pointer_expression "*(undefined1 *)((int)&unaff_s3->_flags + 1)" * (cast_expression "(undefined1 *)((int)&unaff_s3->_flags + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3->_flags + 1)" ( (binary_expression "(int)&unaff_s3->_flags + 1" (cast_expression "(int)&unaff_s3->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3->_flags" & (field_expression "unaff_s3->_flags" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar2 = *(undefined1 *)((int)&unaff_s3->_flags + 2);" (assignment_expression "uVar2 = *(undefined1 *)((int)&unaff_s3->_flags + 2)" identifier = (pointer_expression "*(undefined1 *)((int)&unaff_s3->_flags + 2)" * (cast_expression "(undefined1 *)((int)&unaff_s3->_flags + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3->_flags + 2)" ( (binary_expression "(int)&unaff_s3->_flags + 2" (cast_expression "(int)&unaff_s3->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3->_flags" & (field_expression "unaff_s3->_flags" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined1 *)((int)&unaff_s3->_flags + 3);" (assignment_expression "uVar3 = *(undefined1 *)((int)&unaff_s3->_flags + 3)" identifier = (pointer_expression "*(undefined1 *)((int)&unaff_s3->_flags + 3)" * (cast_expression "(undefined1 *)((int)&unaff_s3->_flags + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3->_flags + 3)" ( (binary_expression "(int)&unaff_s3->_flags + 3" (cast_expression "(int)&unaff_s3->_flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3->_flags" & (field_expression "unaff_s3->_flags" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "ptVar11->c_line = *(undefined1 *)&unaff_s3->_flags;" (assignment_expression "ptVar11->c_line = *(undefined1 *)&unaff_s3->_flags" (field_expression "ptVar11->c_line" identifier -> field_identifier) = (pointer_expression "*(undefined1 *)&unaff_s3->_flags" * (cast_expression "(undefined1 *)&unaff_s3->_flags" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&unaff_s3->_flags" & (field_expression "unaff_s3->_flags" identifier -> field_identifier))))) ;) (expression_statement "ptVar11->c_cc[0] = uVar1;" (assignment_expression "ptVar11->c_cc[0] = uVar1" (subscript_expression "ptVar11->c_cc[0]" (field_expression "ptVar11->c_cc" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ptVar11->c_cc[1] = uVar2;" (assignment_expression "ptVar11->c_cc[1] = uVar2" (subscript_expression "ptVar11->c_cc[1]" (field_expression "ptVar11->c_cc" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ptVar11->c_cc[2] = uVar3;" (assignment_expression "ptVar11->c_cc[2] = uVar3" (subscript_expression "ptVar11->c_cc[2]" (field_expression "ptVar11->c_cc" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (unaff_s8->echo == 0) {\n      newmode.c_lflag = newmode.c_lflag & 0xfffffff7 | 3;\n    }\n    else {\n      newmode.c_lflag = newmode.c_lflag | 0xb;\n    }" if (parenthesized_expression "(unaff_s8->echo == 0)" ( (binary_expression "unaff_s8->echo == 0" (field_expression "unaff_s8->echo" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      newmode.c_lflag = newmode.c_lflag & 0xfffffff7 | 3;\n    }" { (expression_statement "newmode.c_lflag = newmode.c_lflag & 0xfffffff7 | 3;" (assignment_expression "newmode.c_lflag = newmode.c_lflag & 0xfffffff7 | 3" (field_expression "newmode.c_lflag" identifier . field_identifier) = (binary_expression "newmode.c_lflag & 0xfffffff7 | 3" (binary_expression "newmode.c_lflag & 0xfffffff7" (field_expression "newmode.c_lflag" identifier . field_identifier) & number_literal) | number_literal)) ;) }) (else_clause "else {\n      newmode.c_lflag = newmode.c_lflag | 0xb;\n    }" else (compound_statement "{\n      newmode.c_lflag = newmode.c_lflag | 0xb;\n    }" { (expression_statement "newmode.c_lflag = newmode.c_lflag | 0xb;" (assignment_expression "newmode.c_lflag = newmode.c_lflag | 0xb" (field_expression "newmode.c_lflag" identifier . field_identifier) = (binary_expression "newmode.c_lflag | 0xb" (field_expression "newmode.c_lflag" identifier . field_identifier) | number_literal)) ;) }))) (expression_statement "(**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s6);" (call_expression "(**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s6)" (parenthesized_expression "(**(code **)(&LAB_00032fac + in_t9))" ( (pointer_expression "**(code **)(&LAB_00032fac + in_t9)" * (pointer_expression "*(code **)(&LAB_00032fac + in_t9)" * (cast_expression "(code **)(&LAB_00032fac + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00032fac + in_t9)" ( (binary_expression "&LAB_00032fac + in_t9" (pointer_expression "&LAB_00032fac" & identifier) + identifier) ))))) )) (argument_list "(uVar17,&DAT_0000540e,unaff_s6)" ( identifier , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (expression_statement "pcVar19 = unaff_s8->prompt;" (assignment_expression "pcVar19 = unaff_s8->prompt" identifier = (field_expression "unaff_s8->prompt" identifier -> field_identifier)) ;) (expression_statement "uVar8 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar19);" (assignment_expression "uVar8 = (**(code **)(&LAB_00032f68 + in_t9))(pcVar19)" identifier = (call_expression "(**(code **)(&LAB_00032f68 + in_t9))(pcVar19)" (parenthesized_expression "(**(code **)(&LAB_00032f68 + in_t9))" ( (pointer_expression "**(code **)(&LAB_00032f68 + in_t9)" * (pointer_expression "*(code **)(&LAB_00032f68 + in_t9)" * (cast_expression "(code **)(&LAB_00032f68 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00032f68 + in_t9)" ( (binary_expression "&LAB_00032f68 + in_t9" (pointer_expression "&LAB_00032f68" & identifier) + identifier) ))))) )) (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "(*local_ac)(local_b0,pcVar19,uVar8);" (call_expression "(*local_ac)(local_b0,pcVar19,uVar8)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,pcVar19,uVar8)" ( identifier , identifier , identifier ))) ;) (while_statement "while( true ) {\n      (**(code **)(&LAB_00032d78 + in_t9))(unaff_s8,(iVar12 * 5 >> 2) + 0x200);\n      iVar9 = (**(code **)(in_t9 + 0x33044))\n                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12);\n      if (iVar9 < 1) break;\n      iVar12 = iVar12 + iVar9;\n      if ((char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18) {\n        (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n        iVar12 = iVar12 + -1;\n        if (unaff_s8->echo == 0) goto LAB_0007b138;\n        goto LAB_0007b0bc;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      (**(code **)(&LAB_00032d78 + in_t9))(unaff_s8,(iVar12 * 5 >> 2) + 0x200);\n      iVar9 = (**(code **)(in_t9 + 0x33044))\n                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12);\n      if (iVar9 < 1) break;\n      iVar12 = iVar12 + iVar9;\n      if ((char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18) {\n        (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n        iVar12 = iVar12 + -1;\n        if (unaff_s8->echo == 0) goto LAB_0007b138;\n        goto LAB_0007b0bc;\n      }\n    }" { (expression_statement "(**(code **)(&LAB_00032d78 + in_t9))(unaff_s8,(iVar12 * 5 >> 2) + 0x200);" (call_expression "(**(code **)(&LAB_00032d78 + in_t9))(unaff_s8,(iVar12 * 5 >> 2) + 0x200)" (parenthesized_expression "(**(code **)(&LAB_00032d78 + in_t9))" ( (pointer_expression "**(code **)(&LAB_00032d78 + in_t9)" * (pointer_expression "*(code **)(&LAB_00032d78 + in_t9)" * (cast_expression "(code **)(&LAB_00032d78 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00032d78 + in_t9)" ( (binary_expression "&LAB_00032d78 + in_t9" (pointer_expression "&LAB_00032d78" & identifier) + identifier) ))))) )) (argument_list "(unaff_s8,(iVar12 * 5 >> 2) + 0x200)" ( identifier , (binary_expression "(iVar12 * 5 >> 2) + 0x200" (parenthesized_expression "(iVar12 * 5 >> 2)" ( (binary_expression "iVar12 * 5 >> 2" (binary_expression "iVar12 * 5" identifier * number_literal) >> number_literal) )) + number_literal) ))) ;) (expression_statement "iVar9 = (**(code **)(in_t9 + 0x33044))\n                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12);" (assignment_expression "iVar9 = (**(code **)(in_t9 + 0x33044))\n                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12)" identifier = (call_expression "(**(code **)(in_t9 + 0x33044))\n                        (uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12)" (parenthesized_expression "(**(code **)(in_t9 + 0x33044))" ( (pointer_expression "**(code **)(in_t9 + 0x33044)" * (pointer_expression "*(code **)(in_t9 + 0x33044)" * (cast_expression "(code **)(in_t9 + 0x33044)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x33044)" ( (binary_expression "in_t9 + 0x33044" identifier + number_literal) ))))) )) (argument_list "(uVar17,unaff_s8->result + iVar12,(unaff_s8->resultsize - 1) - iVar12)" ( identifier , (binary_expression "unaff_s8->result + iVar12" (field_expression "unaff_s8->result" identifier -> field_identifier) + identifier) , (binary_expression "(unaff_s8->resultsize - 1) - iVar12" (parenthesized_expression "(unaff_s8->resultsize - 1)" ( (binary_expression "unaff_s8->resultsize - 1" (field_expression "unaff_s8->resultsize" identifier -> field_identifier) - number_literal) )) - identifier) )))) ;) (if_statement "if (iVar9 < 1) break;" if (parenthesized_expression "(iVar9 < 1)" ( (binary_expression "iVar9 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + iVar9;" (assignment_expression "iVar12 = iVar12 + iVar9" identifier = (binary_expression "iVar12 + iVar9" identifier + identifier)) ;) (if_statement "if ((char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18) {\n        (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n        iVar12 = iVar12 + -1;\n        if (unaff_s8->echo == 0) goto LAB_0007b138;\n        goto LAB_0007b0bc;\n      }" if (parenthesized_expression "((char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18)" ( (binary_expression "(char *)(int)unaff_s8->result[iVar12 + -1] == pcVar18" (cast_expression "(char *)(int)unaff_s8->result[iVar12 + -1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)unaff_s8->result[iVar12 + -1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "unaff_s8->result[iVar12 + -1]" (field_expression "unaff_s8->result" identifier -> field_identifier) [ (binary_expression "iVar12 + -1" identifier + number_literal) ]))) == identifier) )) (compound_statement "{\n        (**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);\n        iVar12 = iVar12 + -1;\n        if (unaff_s8->echo == 0) goto LAB_0007b138;\n        goto LAB_0007b0bc;\n      }" { (expression_statement "(**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);" (call_expression "(**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5)" (parenthesized_expression "(**(code **)(&LAB_00032fac + in_t9))" ( (pointer_expression "**(code **)(&LAB_00032fac + in_t9)" * (pointer_expression "*(code **)(&LAB_00032fac + in_t9)" * (cast_expression "(code **)(&LAB_00032fac + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00032fac + in_t9)" ( (binary_expression "&LAB_00032fac + in_t9" (pointer_expression "&LAB_00032fac" & identifier) + identifier) ))))) )) (argument_list "(uVar17,&DAT_0000540e,unaff_s5)" ( identifier , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (if_statement "if (unaff_s8->echo == 0) goto LAB_0007b138;" if (parenthesized_expression "(unaff_s8->echo == 0)" ( (binary_expression "unaff_s8->echo == 0" (field_expression "unaff_s8->echo" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0007b138;" goto statement_identifier ;)) (goto_statement "goto LAB_0007b0bc;" goto statement_identifier ;) })) })) (expression_statement "(**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5);" (call_expression "(**(code **)(&LAB_00032fac + in_t9))(uVar17,&DAT_0000540e,unaff_s5)" (parenthesized_expression "(**(code **)(&LAB_00032fac + in_t9))" ( (pointer_expression "**(code **)(&LAB_00032fac + in_t9)" * (pointer_expression "*(code **)(&LAB_00032fac + in_t9)" * (cast_expression "(code **)(&LAB_00032fac + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&LAB_00032fac + in_t9)" ( (binary_expression "&LAB_00032fac + in_t9" (pointer_expression "&LAB_00032fac" & identifier) + identifier) ))))) )) (argument_list "(uVar17,&DAT_0000540e,unaff_s5)" ( identifier , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (if_statement "if (unaff_s8->echo == 0) {\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }" if (parenthesized_expression "(unaff_s8->echo == 0)" ( (binary_expression "unaff_s8->echo == 0" (field_expression "unaff_s8->echo" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      (*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);\n    }" { (expression_statement "(*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1);" (call_expression "(*local_ac)(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,*(int *)(in_t9 + 0x32608) + -0x2c,1)" ( identifier , (binary_expression "*(int *)(in_t9 + 0x32608) + -0x2c" (pointer_expression "*(int *)(in_t9 + 0x32608)" * (cast_expression "(int *)(in_t9 + 0x32608)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x32608)" ( (binary_expression "in_t9 + 0x32608" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) })) (if_statement "if ((FILE *)*local_a4 != local_b0) {\n      (**(code **)(&DAT_00032ec4 + in_t9))();\n    }" if (parenthesized_expression "((FILE *)*local_a4 != local_b0)" ( (binary_expression "(FILE *)*local_a4 != local_b0" (cast_expression "(FILE *)*local_a4" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_a4" * identifier)) != identifier) )) (compound_statement "{\n      (**(code **)(&DAT_00032ec4 + in_t9))();\n    }" { (expression_statement "(**(code **)(&DAT_00032ec4 + in_t9))();" (call_expression "(**(code **)(&DAT_00032ec4 + in_t9))()" (parenthesized_expression "(**(code **)(&DAT_00032ec4 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00032ec4 + in_t9)" * (pointer_expression "*(code **)(&DAT_00032ec4 + in_t9)" * (cast_expression "(code **)(&DAT_00032ec4 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00032ec4 + in_t9)" ( (binary_expression "&DAT_00032ec4 + in_t9" (pointer_expression "&DAT_00032ec4" & identifier) + identifier) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0007b02c:\n    while( true ) {\n      if (iVar10 == *piVar5) {\n        return iVar12;\n      }\n      (**(code **)(&DAT_00032fe4 + in_t9))();\n      iVar12 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\nLAB_0007b0bc:\n      unaff_s4 = unaff_s4 + 1;\n      unaff_s8->result[iVar12] = '\0';\n      if (unaff_s4 < p->n_prompts) break;\nLAB_0007b0dc:\n      if ((FILE *)*local_a4 == local_b0) {\n        iVar12 = 1;\n      }\n      else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }\n    }" statement_identifier : (while_statement "while( true ) {\n      if (iVar10 == *piVar5) {\n        return iVar12;\n      }\n      (**(code **)(&DAT_00032fe4 + in_t9))();\n      iVar12 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\nLAB_0007b0bc:\n      unaff_s4 = unaff_s4 + 1;\n      unaff_s8->result[iVar12] = '\0';\n      if (unaff_s4 < p->n_prompts) break;\nLAB_0007b0dc:\n      if ((FILE *)*local_a4 == local_b0) {\n        iVar12 = 1;\n      }\n      else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (iVar10 == *piVar5) {\n        return iVar12;\n      }\n      (**(code **)(&DAT_00032fe4 + in_t9))();\n      iVar12 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\nLAB_0007b0bc:\n      unaff_s4 = unaff_s4 + 1;\n      unaff_s8->result[iVar12] = '\0';\n      if (unaff_s4 < p->n_prompts) break;\nLAB_0007b0dc:\n      if ((FILE *)*local_a4 == local_b0) {\n        iVar12 = 1;\n      }\n      else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }\n    }" { (if_statement "if (iVar10 == *piVar5) {\n        return iVar12;\n      }" if (parenthesized_expression "(iVar10 == *piVar5)" ( (binary_expression "iVar10 == *piVar5" identifier == (pointer_expression "*piVar5" * identifier)) )) (compound_statement "{\n        return iVar12;\n      }" { (return_statement "return iVar12;" return identifier ;) })) (expression_statement "(**(code **)(&DAT_00032fe4 + in_t9))();" (call_expression "(**(code **)(&DAT_00032fe4 + in_t9))()" (parenthesized_expression "(**(code **)(&DAT_00032fe4 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00032fe4 + in_t9)" * (pointer_expression "*(code **)(&DAT_00032fe4 + in_t9)" * (cast_expression "(code **)(&DAT_00032fe4 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00032fe4 + in_t9)" ( (binary_expression "&DAT_00032fe4 + in_t9" (pointer_expression "&DAT_00032fe4" & identifier) + identifier) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar12 = extraout_v1;" (assignment_expression "iVar12 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);" statement_identifier : (expression_statement "(*local_ac)(local_b0,local_a0,1);" (call_expression "(*local_ac)(local_b0,local_a0,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,local_a0,1)" ( identifier , identifier , number_literal ))) ;)) (labeled_statement "LAB_0007b0bc:\n      unaff_s4 = unaff_s4 + 1;" statement_identifier : (expression_statement "unaff_s4 = unaff_s4 + 1;" (assignment_expression "unaff_s4 = unaff_s4 + 1" identifier = (binary_expression "unaff_s4 + 1" identifier + number_literal)) ;)) (expression_statement "unaff_s8->result[iVar12] = '\0';" (assignment_expression "unaff_s8->result[iVar12] = '\0'" (subscript_expression "unaff_s8->result[iVar12]" (field_expression "unaff_s8->result" identifier -> field_identifier) [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (unaff_s4 < p->n_prompts) break;" if (parenthesized_expression "(unaff_s4 < p->n_prompts)" ( (binary_expression "unaff_s4 < p->n_prompts" identifier < (field_expression "p->n_prompts" identifier -> field_identifier)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0007b0dc:\n      if ((FILE *)*local_a4 == local_b0) {\n        iVar12 = 1;\n      }\n      else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }" statement_identifier : (if_statement "if ((FILE *)*local_a4 == local_b0) {\n        iVar12 = 1;\n      }\n      else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }" if (parenthesized_expression "((FILE *)*local_a4 == local_b0)" ( (binary_expression "(FILE *)*local_a4 == local_b0" (cast_expression "(FILE *)*local_a4" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_a4" * identifier)) == identifier) )) (compound_statement "{\n        iVar12 = 1;\n      }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }" else (compound_statement "{\n        (**(code **)(&DAT_00032ec4 + in_t9))();\n        iVar12 = 1;\n      }" { (expression_statement "(**(code **)(&DAT_00032ec4 + in_t9))();" (call_expression "(**(code **)(&DAT_00032ec4 + in_t9))()" (parenthesized_expression "(**(code **)(&DAT_00032ec4 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00032ec4 + in_t9)" * (pointer_expression "*(code **)(&DAT_00032ec4 + in_t9)" * (cast_expression "(code **)(&DAT_00032ec4 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00032ec4 + in_t9)" ( (binary_expression "&DAT_00032ec4 + in_t9" (pointer_expression "&DAT_00032ec4" & identifier) + identifier) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) })))) }))) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "undefined4 console_get_userpass_input(int param_1)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int extraout_v1;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined4 *unaff_s3;\n  uint unaff_s4;\n  undefined4 *unaff_s5;\n  undefined4 *unaff_s6;\n  undefined4 *unaff_s8;\n  undefined4 *local_b0;\n  code *local_ac;\n  undefined4 *local_a4;\n  undefined *local_a0;\n  undefined4 local_94 [12];\n  undefined4 local_64;\n  undefined4 local_60 [3];\n  uint local_54;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }\n  uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);\n  local_a4 = (undefined4 *)PTR_stderr_000adcf0;\n  if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }\n  if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  puVar13 = *(undefined **)(param_1 + 0xc);\n  puVar12 = puVar13;\n  if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = local_94;\n  unaff_s6 = local_60;\n  local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n  unaff_s3 = &local_64;\n  puVar12 = (undefined *)0xa;\n  local_a0 = PTR_DAT_000ad2c8 + -0x2c;\n  do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );\n}\n\n" (function_definition "undefined4 console_get_userpass_input(int param_1)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int extraout_v1;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined4 *unaff_s3;\n  uint unaff_s4;\n  undefined4 *unaff_s5;\n  undefined4 *unaff_s6;\n  undefined4 *unaff_s8;\n  undefined4 *local_b0;\n  code *local_ac;\n  undefined4 *local_a4;\n  undefined *local_a0;\n  undefined4 local_94 [12];\n  undefined4 local_64;\n  undefined4 local_60 [3];\n  uint local_54;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }\n  uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);\n  local_a4 = (undefined4 *)PTR_stderr_000adcf0;\n  if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }\n  if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  puVar13 = *(undefined **)(param_1 + 0xc);\n  puVar12 = puVar13;\n  if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = local_94;\n  unaff_s6 = local_60;\n  local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n  unaff_s3 = &local_64;\n  puVar12 = (undefined *)0xa;\n  local_a0 = PTR_DAT_000ad2c8 + -0x2c;\n  do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );\n}" type_identifier (function_declarator "console_get_userpass_input(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int extraout_v1;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined4 *unaff_s3;\n  uint unaff_s4;\n  undefined4 *unaff_s5;\n  undefined4 *unaff_s6;\n  undefined4 *unaff_s8;\n  undefined4 *local_b0;\n  code *local_ac;\n  undefined4 *local_a4;\n  undefined *local_a0;\n  undefined4 local_94 [12];\n  undefined4 local_64;\n  undefined4 local_60 [3];\n  uint local_54;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }\n  uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);\n  local_a4 = (undefined4 *)PTR_stderr_000adcf0;\n  if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }\n  if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  puVar13 = *(undefined **)(param_1 + 0xc);\n  puVar12 = puVar13;\n  if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = local_94;\n  unaff_s6 = local_60;\n  local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n  unaff_s3 = &local_64;\n  puVar12 = (undefined *)0xa;\n  local_a0 = PTR_DAT_000ad2c8 + -0x2c;\n  do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint unaff_s4;" type_identifier identifier ;) (declaration "undefined4 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined4 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined4 *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "code *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "undefined4 *local_a4;" type_identifier (pointer_declarator "*local_a4" * identifier) ;) (declaration "undefined *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "undefined4 local_94 [12];" type_identifier (array_declarator "local_94 [12]" identifier [ number_literal ]) ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "undefined4 local_60 [3];" type_identifier (array_declarator "local_60 [3]" identifier [ number_literal ]) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000adcd4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" * (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" ( (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "puVar12 = PTR_DAT_000ad2c8 + -0x22a4;" (assignment_expression "puVar12 = PTR_DAT_000ad2c8 + -0x22a4" identifier = (binary_expression "PTR_DAT_000ad2c8 + -0x22a4" identifier + number_literal)) ;) (do_statement "do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));" do (compound_statement "{\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    }" { (expression_statement "iVar6 = uVar11 * 4;" (assignment_expression "iVar6 = uVar11 * 4" identifier = (binary_expression "uVar11 * 4" identifier * number_literal)) ;) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);" (call_expression "(*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12)" (parenthesized_expression "(*(code *)PTR_prompt_set_result_000ad434)" ( (pointer_expression "*(code *)PTR_prompt_set_result_000ad434" * (cast_expression "(code *)PTR_prompt_set_result_000ad434" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12)" ( (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x18) + iVar6)" ( (binary_expression "*(int *)(param_1 + 0x18) + iVar6" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + identifier) )))) , identifier ))) ;) }) while (parenthesized_expression "(uVar11 < *(uint *)(param_1 + 0x14))" ( (binary_expression "uVar11 < *(uint *)(param_1 + 0x14)" identifier < (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) )) ;) (if_statement "if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;" if (parenthesized_expression "((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0))" ( (binary_expression "(*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)" (parenthesized_expression "(*(uint *)(param_1 + 0x14) != 0)" ( (binary_expression "*(uint *)(param_1 + 0x14) != 0" (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)" ( (comma_expression "uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0" (assignment_expression "uVar2 = 0" identifier = number_literal) , (binary_expression "*(int *)PTR_console_batch_mode_000ad368 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000ad368" * (cast_expression "(int *)PTR_console_batch_mode_000ad368" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != number_literal)) ))) )) (goto_statement "goto LAB_0007b02c;" goto statement_identifier ;)) })) (expression_statement "uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);" (assignment_expression "uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2)" identifier = (call_expression "(*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2)" (parenthesized_expression "(*(code *)PTR_open64_000adc18)" ( (pointer_expression "*(code *)PTR_open64_000adc18" * (cast_expression "(code *)PTR_open64_000adc18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_000ad2d0 + -0x7ccc,2)" ( (binary_expression "PTR_DAT_000ad2d0 + -0x7ccc" identifier + number_literal) , number_literal )))) ;) (expression_statement "local_a4 = (undefined4 *)PTR_stderr_000adcf0;" (assignment_expression "local_a4 = (undefined4 *)PTR_stderr_000adcf0" identifier = (cast_expression "(undefined4 *)PTR_stderr_000adcf0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }" if (parenthesized_expression "((int)uVar11 < 0)" ( (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "local_b0 = *(undefined4 **)PTR_stderr_000adcf0;" (assignment_expression "local_b0 = *(undefined4 **)PTR_stderr_000adcf0" identifier = (pointer_expression "*(undefined4 **)PTR_stderr_000adcf0" * (cast_expression "(undefined4 **)PTR_stderr_000adcf0" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }) (else_clause "else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }" else (compound_statement "{\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }" { (expression_statement "local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);" (assignment_expression "local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c)" (parenthesized_expression "(*(code *)PTR_fdopen_000add1c)" ( (pointer_expression "*(code *)PTR_fdopen_000add1c" * (cast_expression "(code *)PTR_fdopen_000add1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,PTR_DAT_000ad2c8 + 0x632c)" ( identifier , (binary_expression "PTR_DAT_000ad2c8 + 0x632c" identifier + number_literal) ))))) ;) }))) (if_statement "if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" if (parenthesized_expression "((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0))" ( (binary_expression "(*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)" (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" ( (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar6 = *(int *)(param_1 + 4), iVar6 != 0)" ( (comma_expression "iVar6 = *(int *)(param_1 + 4), iVar6 != 0" (assignment_expression "iVar6 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , (binary_expression "iVar6 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6)" identifier = (call_expression "(*(code *)PTR_strlen_000adc28)(iVar6)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);" (assignment_expression "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230)" identifier = (cast_expression "(code *)(PTR_LAB_000ad2f8 + -0x6230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x6230)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x6230" identifier + number_literal) )))) ;) (expression_statement "FUN_00079dd0(local_b0,iVar6,iVar3);" (call_expression "FUN_00079dd0(local_b0,iVar6,iVar3)" identifier (argument_list "(local_b0,iVar6,iVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s3 = local_b0;" (assignment_expression "unaff_s3 = local_b0" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" if (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + iVar3 + -1)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + iVar3 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + iVar3 + -1)" ( (binary_expression "*(int *)(param_1 + 4) + iVar3 + -1" (binary_expression "*(int *)(param_1 + 4) + iVar3" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + identifier) + number_literal) )))) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" { (expression_statement "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);" (call_expression "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" ( identifier , (binary_expression "PTR_DAT_000ad2c8 + -0x2c" identifier + number_literal) , number_literal ))) ;) })) })) (expression_statement "puVar13 = *(undefined **)(param_1 + 0xc);" (assignment_expression "puVar13 = *(undefined **)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined **)(param_1 + 0xc)" * (cast_expression "(undefined **)(param_1 + 0xc)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (if_statement "if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" if (parenthesized_expression "(puVar13 != (undefined *)0x0)" ( (binary_expression "puVar13 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" { (expression_statement "puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);" (assignment_expression "puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13)" identifier = (cast_expression "(undefined *)(*(code *)PTR_strlen_000adc28)(puVar13)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strlen_000adc28)(puVar13)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier ))))) ;) (expression_statement "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);" (assignment_expression "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230)" identifier = (cast_expression "(code *)(PTR_LAB_000ad2f8 + -0x6230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x6230)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x6230" identifier + number_literal) )))) ;) (expression_statement "FUN_00079dd0(local_b0,puVar13,puVar12);" (call_expression "FUN_00079dd0(local_b0,puVar13,puVar12)" identifier (argument_list "(local_b0,puVar13,puVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s3 = local_b0;" (assignment_expression "unaff_s3 = local_b0" identifier = identifier) ;) (if_statement "if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" if (parenthesized_expression "(puVar12[*(int *)(param_1 + 0xc) + -1] != '\n')" ( (binary_expression "puVar12[*(int *)(param_1 + 0xc) + -1] != '\n'" (subscript_expression "puVar12[*(int *)(param_1 + 0xc) + -1]" identifier [ (binary_expression "*(int *)(param_1 + 0xc) + -1" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) ]) != (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" { (expression_statement "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);" (call_expression "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" ( identifier , (binary_expression "PTR_DAT_000ad2c8 + -0x2c" identifier + number_literal) , number_literal ))) ;) })) })) (if_statement "if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;" if (parenthesized_expression "(*(int *)(param_1 + 0x14) == 0)" ( (binary_expression "*(int *)(param_1 + 0x14) == 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0007b0dc;" goto statement_identifier ;)) (expression_statement "unaff_s4 = 0;" (assignment_expression "unaff_s4 = 0" identifier = number_literal) ;) (expression_statement "unaff_s5 = local_94;" (assignment_expression "unaff_s5 = local_94" identifier = identifier) ;) (expression_statement "unaff_s6 = local_60;" (assignment_expression "unaff_s6 = local_60" identifier = identifier) ;) (expression_statement "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);" (assignment_expression "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230)" identifier = (cast_expression "(code *)(PTR_LAB_000ad2f8 + -0x6230)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x6230)" ( (binary_expression "PTR_LAB_000ad2f8 + -0x6230" identifier + number_literal) )))) ;) (expression_statement "unaff_s3 = &local_64;" (assignment_expression "unaff_s3 = &local_64" identifier = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "puVar12 = (undefined *)0xa;" (assignment_expression "puVar12 = (undefined *)0xa" identifier = (cast_expression "(undefined *)0xa" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a0 = PTR_DAT_000ad2c8 + -0x2c;" (assignment_expression "local_a0 = PTR_DAT_000ad2c8 + -0x2c" identifier = (binary_expression "PTR_DAT_000ad2c8 + -0x2c" identifier + number_literal)) ;) (do_statement "do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );" do (compound_statement "{\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  }" { (expression_statement "unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);" (assignment_expression "unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" * (cast_expression "(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" ( (binary_expression "*(int *)(param_1 + 0x18) + unaff_s4 * 4" (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) + (binary_expression "unaff_s4 * 4" identifier * number_literal)) ))))) ;) (expression_statement "(*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);" (call_expression "(*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5)" (parenthesized_expression "(*(code *)PTR_tcgetattr_000adb38)" ( (pointer_expression "*(code *)PTR_tcgetattr_000adb38" * (cast_expression "(code *)PTR_tcgetattr_000adb38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,unaff_s5)" ( identifier , identifier ))) ;) (expression_statement "puVar4 = unaff_s5;" (assignment_expression "puVar4 = unaff_s5" identifier = identifier) ;) (expression_statement "puVar7 = unaff_s6;" (assignment_expression "puVar7 = unaff_s6" identifier = identifier) ;) (do_statement "do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);" do (compound_statement "{\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    }" { (expression_statement "puVar5 = puVar4 + 4;" (assignment_expression "puVar5 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar7 + 4;" (assignment_expression "puVar8 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) (expression_statement "uVar10 = puVar4[1];" (assignment_expression "uVar10 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar4[2];" (assignment_expression "uVar9 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar4[3];" (assignment_expression "uVar2 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar7 = *puVar4;" (assignment_expression "*puVar7 = *puVar4" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar9;" (assignment_expression "puVar7[2] = uVar9" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar2;" (assignment_expression "puVar7[3] = uVar2" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) }) while (parenthesized_expression "(puVar5 != unaff_s3)" ( (binary_expression "puVar5 != unaff_s3" identifier != identifier) )) ;) (expression_statement "*puVar8 = *unaff_s3;" (assignment_expression "*puVar8 = *unaff_s3" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*unaff_s3" * identifier)) ;) (if_statement "if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }" if (parenthesized_expression "(unaff_s8[1] == 0)" ( (binary_expression "unaff_s8[1] == 0" (subscript_expression "unaff_s8[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }" { (expression_statement "local_54 = local_54 & 0xfffffff7 | 3;" (assignment_expression "local_54 = local_54 & 0xfffffff7 | 3" identifier = (binary_expression "local_54 & 0xfffffff7 | 3" (binary_expression "local_54 & 0xfffffff7" identifier & number_literal) | number_literal)) ;) }) (else_clause "else {\n      local_54 = local_54 | 0xb;\n    }" else (compound_statement "{\n      local_54 = local_54 | 0xb;\n    }" { (expression_statement "local_54 = local_54 | 0xb;" (assignment_expression "local_54 = local_54 | 0xb" identifier = (binary_expression "local_54 | 0xb" identifier | number_literal)) ;) }))) (expression_statement "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);" (call_expression "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000adc6c)" ( (pointer_expression "*(code *)PTR_tcsetattr_000adc6c" * (cast_expression "(code *)PTR_tcsetattr_000adc6c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,&DAT_0000540e,unaff_s6)" ( identifier , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (expression_statement "uVar9 = *unaff_s8;" (assignment_expression "uVar9 = *unaff_s8" identifier = (pointer_expression "*unaff_s8" * identifier)) ;) (expression_statement "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);" (assignment_expression "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9)" identifier = (call_expression "(*(code *)PTR_strlen_000adc28)(uVar9)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" ( (pointer_expression "*(code *)PTR_strlen_000adc28" * (cast_expression "(code *)PTR_strlen_000adc28" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar9)" ( identifier )))) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "(*local_ac)(local_b0,uVar9,uVar2);" (call_expression "(*local_ac)(local_b0,uVar9,uVar2)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,uVar9,uVar2)" ( identifier , identifier , identifier ))) ;) (do_statement "do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);" do (compound_statement "{\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    }" { (expression_statement "(*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);" (call_expression "(*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200)" (parenthesized_expression "(*(code *)PTR_prompt_ensure_result_size_000ada38)" ( (pointer_expression "*(code *)PTR_prompt_ensure_result_size_000ada38" * (cast_expression "(code *)PTR_prompt_ensure_result_size_000ada38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s8,(iVar6 * 5 >> 2) + 0x200)" ( identifier , (binary_expression "(iVar6 * 5 >> 2) + 0x200" (parenthesized_expression "(iVar6 * 5 >> 2)" ( (binary_expression "iVar6 * 5 >> 2" (binary_expression "iVar6 * 5" identifier * number_literal) >> number_literal) )) + number_literal) ))) ;) (expression_statement "iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);" (assignment_expression "iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6)" identifier = (call_expression "(*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6)" (parenthesized_expression "(*(code *)PTR_read_000add04)" ( (pointer_expression "*(code *)PTR_read_000add04" * (cast_expression "(code *)PTR_read_000add04" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6)" ( identifier , (binary_expression "unaff_s8[2] + iVar6" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) + identifier) , (binary_expression "(unaff_s8[3] + -1) - iVar6" (parenthesized_expression "(unaff_s8[3] + -1)" ( (binary_expression "unaff_s8[3] + -1" (subscript_expression "unaff_s8[3]" identifier [ number_literal ]) + number_literal) )) - identifier) )))) ;) (if_statement "if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }" if (parenthesized_expression "(iVar3 < 1)" ( (binary_expression "iVar3 < 1" identifier < number_literal) )) (compound_statement "{\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }" { (expression_statement "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);" (call_expression "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000adc6c)" ( (pointer_expression "*(code *)PTR_tcsetattr_000adc6c" * (cast_expression "(code *)PTR_tcsetattr_000adc6c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,&DAT_0000540e,unaff_s5)" ( identifier , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (if_statement "if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }" if (parenthesized_expression "(unaff_s8[1] == 0)" ( (binary_expression "unaff_s8[1] == 0" (subscript_expression "unaff_s8[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }" { (expression_statement "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);" (call_expression "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" ( identifier , (binary_expression "PTR_DAT_000ad2c8 + -0x2c" identifier + number_literal) , number_literal ))) ;) })) (if_statement "if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }" if (parenthesized_expression "((undefined4 *)*local_a4 != local_b0)" ( (binary_expression "(undefined4 *)*local_a4 != local_b0" (cast_expression "(undefined4 *)*local_a4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_a4" * identifier)) != identifier) )) (compound_statement "{\n          (*(code *)PTR_fclose_000adb84)();\n        }" { (expression_statement "(*(code *)PTR_fclose_000adb84)();" (call_expression "(*(code *)PTR_fclose_000adb84)()" (parenthesized_expression "(*(code *)PTR_fclose_000adb84)" ( (pointer_expression "*(code *)PTR_fclose_000adb84" * (cast_expression "(code *)PTR_fclose_000adb84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007b02c;" goto statement_identifier ;) })) (expression_statement "iVar6 = iVar6 + iVar3;" (assignment_expression "iVar6 = iVar6 + iVar3" identifier = (binary_expression "iVar6 + iVar3" identifier + identifier)) ;) }) while (parenthesized_expression "((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12)" ( (binary_expression "(undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12" (cast_expression "(undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(char *)(unaff_s8[2] + iVar6 + -1)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(unaff_s8[2] + iVar6 + -1)" * (cast_expression "(char *)(unaff_s8[2] + iVar6 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[2] + iVar6 + -1)" ( (binary_expression "unaff_s8[2] + iVar6 + -1" (binary_expression "unaff_s8[2] + iVar6" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) + identifier) + number_literal) )))))) != identifier) )) ;) (expression_statement "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);" (call_expression "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000adc6c)" ( (pointer_expression "*(code *)PTR_tcsetattr_000adc6c" * (cast_expression "(code *)PTR_tcsetattr_000adc6c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar11,&DAT_0000540e,unaff_s5)" ( identifier , (pointer_expression "&DAT_0000540e" & identifier) , identifier ))) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (if_statement "if (unaff_s8[1] == 0) goto LAB_0007b138;" if (parenthesized_expression "(unaff_s8[1] == 0)" ( (binary_expression "unaff_s8[1] == 0" (subscript_expression "unaff_s8[1]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0007b138;" goto statement_identifier ;)) (while_statement "while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }" { (expression_statement "unaff_s4 = unaff_s4 + 1;" (assignment_expression "unaff_s4 = unaff_s4 + 1" identifier = (binary_expression "unaff_s4 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(unaff_s8[2] + iVar6) = 0;" (assignment_expression "*(undefined1 *)(unaff_s8[2] + iVar6) = 0" (pointer_expression "*(undefined1 *)(unaff_s8[2] + iVar6)" * (cast_expression "(undefined1 *)(unaff_s8[2] + iVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s8[2] + iVar6)" ( (binary_expression "unaff_s8[2] + iVar6" (subscript_expression "unaff_s8[2]" identifier [ number_literal ]) + identifier) )))) = number_literal) ;) (if_statement "if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;" if (parenthesized_expression "(unaff_s4 < *(uint *)(param_1 + 0x14))" ( (binary_expression "unaff_s4 < *(uint *)(param_1 + 0x14)" identifier < (pointer_expression "*(uint *)(param_1 + 0x14)" * (cast_expression "(uint *)(param_1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" statement_identifier : (if_statement "if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" if (parenthesized_expression "((undefined4 *)*local_a4 == local_b0)" ( (binary_expression "(undefined4 *)*local_a4 == local_b0" (cast_expression "(undefined4 *)*local_a4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_a4" * identifier)) == identifier) )) (compound_statement "{\n        uVar2 = 1;\n      }" { (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" else (compound_statement "{\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" { (expression_statement "(*(code *)PTR_fclose_000adb84)();" (call_expression "(*(code *)PTR_fclose_000adb84)()" (parenthesized_expression "(*(code *)PTR_fclose_000adb84)" ( (pointer_expression "*(code *)PTR_fclose_000adb84" * (cast_expression "(code *)PTR_fclose_000adb84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) })))) (labeled_statement "LAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return uVar2;\n      }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" * (cast_expression "(code *)PTR___stack_chk_fail_000adca4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar6 = extraout_v1;" (assignment_expression "iVar6 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);" statement_identifier : (expression_statement "(*local_ac)(local_b0,local_a0,1);" (call_expression "(*local_ac)(local_b0,local_a0,1)" (parenthesized_expression "(*local_ac)" ( (pointer_expression "*local_ac" * identifier) )) (argument_list "(local_b0,local_a0,1)" ( identifier , identifier , number_literal ))) ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * 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 (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != LIT)) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , 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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_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 IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) >> LIT) )) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) , (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )) - IDENT) )))) ;) (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 ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + LIT) )))))) != IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))) ;)) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "undefined4 console_get_userpass_input(int param_1)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int extraout_v1;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined4 *unaff_s3;\n  uint unaff_s4;\n  undefined4 *unaff_s5;\n  undefined4 *unaff_s6;\n  undefined4 *unaff_s8;\n  undefined4 *local_b0;\n  code *local_ac;\n  undefined4 *local_a4;\n  undefined *local_a0;\n  undefined4 local_94 [12];\n  undefined4 local_64;\n  undefined4 local_60 [3];\n  uint local_54;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }\n  uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);\n  local_a4 = (undefined4 *)PTR_stderr_000adcf0;\n  if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }\n  if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  puVar13 = *(undefined **)(param_1 + 0xc);\n  puVar12 = puVar13;\n  if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = local_94;\n  unaff_s6 = local_60;\n  local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n  unaff_s3 = &local_64;\n  puVar12 = (undefined *)0xa;\n  local_a0 = PTR_DAT_000ad2c8 + -0x2c;\n  do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );\n}" (type_identifier "undefined4") (function_declarator "console_get_userpass_input(int param_1)" (identifier "console_get_userpass_input") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  int extraout_v1;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  undefined4 *unaff_s3;\n  uint unaff_s4;\n  undefined4 *unaff_s5;\n  undefined4 *unaff_s6;\n  undefined4 *unaff_s8;\n  undefined4 *local_b0;\n  code *local_ac;\n  undefined4 *local_a4;\n  undefined *local_a0;\n  undefined4 local_94 [12];\n  undefined4 local_64;\n  undefined4 local_60 [3];\n  uint local_54;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_000adcd4;\n  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;\n  if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }\n  uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);\n  local_a4 = (undefined4 *)PTR_stderr_000adcf0;\n  if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }\n  if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  puVar13 = *(undefined **)(param_1 + 0xc);\n  puVar12 = puVar13;\n  if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }\n  if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;\n  unaff_s4 = 0;\n  unaff_s5 = local_94;\n  unaff_s6 = local_60;\n  local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n  unaff_s3 = &local_64;\n  puVar12 = (undefined *)0xa;\n  local_a0 = PTR_DAT_000ad2c8 + -0x2c;\n  do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (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 "undefined4 *unaff_s3;" (type_identifier "undefined4") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "uint unaff_s4;" (type_identifier "uint") (identifier "unaff_s4") (; ";")) (declaration "undefined4 *unaff_s5;" (type_identifier "undefined4") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined4 *unaff_s6;" (type_identifier "undefined4") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "undefined4 *unaff_s8;" (type_identifier "undefined4") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")) (; ";")) (declaration "undefined4 *local_b0;" (type_identifier "undefined4") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "code *local_ac;" (type_identifier "code") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac")) (; ";")) (declaration "undefined4 *local_a4;" (type_identifier "undefined4") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4")) (; ";")) (declaration "undefined *local_a0;" (type_identifier "undefined") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0")) (; ";")) (declaration "undefined4 local_94 [12];" (type_identifier "undefined4") (array_declarator "local_94 [12]" (identifier "local_94") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "undefined4 local_60 [3];" (type_identifier "undefined4") (array_declarator "local_60 [3]" (identifier "local_60") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_000adcd4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000adcd4" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_000adcd4")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000adcd4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000adcd4" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000adcd4" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000adcd4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000adcd4")))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar11 = 0;\n    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;\n    do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));\n    if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;\n  }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12 = PTR_DAT_000ad2c8 + -0x22a4;" (assignment_expression "puVar12 = PTR_DAT_000ad2c8 + -0x22a4" (identifier "puVar12") (= "=") (binary_expression "PTR_DAT_000ad2c8 + -0x22a4" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "-0x22a4"))) (; ";")) (do_statement "do {\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    } while (uVar11 < *(uint *)(param_1 + 0x14));" (do "do") (compound_statement "{\n      iVar6 = uVar11 * 4;\n      uVar11 = uVar11 + 1;\n      (*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);\n    }" ({ "{") (expression_statement "iVar6 = uVar11 * 4;" (assignment_expression "iVar6 = uVar11 * 4" (identifier "iVar6") (= "=") (binary_expression "uVar11 * 4" (identifier "uVar11") (* "*") (number_literal "4"))) (; ";")) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);" (call_expression "(*(code *)PTR_prompt_set_result_000ad434)\n                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12)" (parenthesized_expression "(*(code *)PTR_prompt_set_result_000ad434)" (( "(") (pointer_expression "*(code *)PTR_prompt_set_result_000ad434" (* "*") (cast_expression "(code *)PTR_prompt_set_result_000ad434" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_prompt_set_result_000ad434"))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x18) + iVar6)" (( "(") (binary_expression "*(int *)(param_1 + 0x18) + iVar6" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (identifier "iVar6")) () ")")))) (, ",") (identifier "puVar12") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar11 < *(uint *)(param_1 + 0x14))" (( "(") (binary_expression "uVar11 < *(uint *)(param_1 + 0x14)" (identifier "uVar11") (< "<") (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0))" (( "(") (binary_expression "(*(uint *)(param_1 + 0x14) != 0) &&\n       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)" (parenthesized_expression "(*(uint *)(param_1 + 0x14) != 0)" (( "(") (binary_expression "*(uint *)(param_1 + 0x14) != 0" (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)" (( "(") (comma_expression "uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (, ",") (binary_expression "*(int *)PTR_console_batch_mode_000ad368 != 0" (pointer_expression "*(int *)PTR_console_batch_mode_000ad368" (* "*") (cast_expression "(int *)PTR_console_batch_mode_000ad368" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_console_batch_mode_000ad368"))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0007b02c;" (goto "goto") (statement_identifier "LAB_0007b02c") (; ";"))) (} "}"))) (expression_statement "uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);" (assignment_expression "uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2)" (parenthesized_expression "(*(code *)PTR_open64_000adc18)" (( "(") (pointer_expression "*(code *)PTR_open64_000adc18" (* "*") (cast_expression "(code *)PTR_open64_000adc18" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_open64_000adc18"))) () ")")) (argument_list "(PTR_DAT_000ad2d0 + -0x7ccc,2)" (( "(") (binary_expression "PTR_DAT_000ad2d0 + -0x7ccc" (identifier "PTR_DAT_000ad2d0") (+ "+") (number_literal "-0x7ccc")) (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "local_a4 = (undefined4 *)PTR_stderr_000adcf0;" (assignment_expression "local_a4 = (undefined4 *)PTR_stderr_000adcf0" (identifier "local_a4") (= "=") (cast_expression "(undefined4 *)PTR_stderr_000adcf0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_000adcf0"))) (; ";")) (if_statement "if ((int)uVar11 < 0) {\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }\n  else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }" (if "if") (parenthesized_expression "((int)uVar11 < 0)" (( "(") (binary_expression "(int)uVar11 < 0" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    uVar11 = 0;\n    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;\n  }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b0 = *(undefined4 **)PTR_stderr_000adcf0;" (assignment_expression "local_b0 = *(undefined4 **)PTR_stderr_000adcf0" (identifier "local_b0") (= "=") (pointer_expression "*(undefined4 **)PTR_stderr_000adcf0" (* "*") (cast_expression "(undefined4 **)PTR_stderr_000adcf0" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stderr_000adcf0")))) (; ";")) (} "}")) (else_clause "else {\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }" (else "else") (compound_statement "{\n    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);\n  }" ({ "{") (expression_statement "local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);" (assignment_expression "local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c)" (identifier "local_b0") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c)" (parenthesized_expression "(*(code *)PTR_fdopen_000add1c)" (( "(") (pointer_expression "*(code *)PTR_fdopen_000add1c" (* "*") (cast_expression "(code *)PTR_fdopen_000add1c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fdopen_000add1c"))) () ")")) (argument_list "(uVar11,PTR_DAT_000ad2c8 + 0x632c)" (( "(") (identifier "uVar11") (, ",") (binary_expression "PTR_DAT_000ad2c8 + 0x632c" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "0x632c")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0))" (( "(") (binary_expression "(*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)" (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar6 = *(int *)(param_1 + 4), iVar6 != 0)" (( "(") (comma_expression "iVar6 = *(int *)(param_1 + 4), iVar6 != 0" (assignment_expression "iVar6 = *(int *)(param_1 + 4)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (, ",") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,iVar6,iVar3);\n    unaff_s3 = local_b0;\n    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strlen_000adc28)(iVar6)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" (( "(") (pointer_expression "*(code *)PTR_strlen_000adc28" (* "*") (cast_expression "(code *)PTR_strlen_000adc28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000adc28"))) () ")")) (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);" (assignment_expression "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230)" (identifier "local_ac") (= "=") (cast_expression "(code *)(PTR_LAB_000ad2f8 + -0x6230)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x6230)" (( "(") (binary_expression "PTR_LAB_000ad2f8 + -0x6230" (identifier "PTR_LAB_000ad2f8") (+ "+") (number_literal "-0x6230")) () ")")))) (; ";")) (expression_statement "FUN_00079dd0(local_b0,iVar6,iVar3);" (call_expression "FUN_00079dd0(local_b0,iVar6,iVar3)" (identifier "FUN_00079dd0") (argument_list "(local_b0,iVar6,iVar3)" (( "(") (identifier "local_b0") (, ",") (identifier "iVar6") (, ",") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "unaff_s3 = local_b0;" (assignment_expression "unaff_s3 = local_b0" (identifier "unaff_s3") (= "=") (identifier "local_b0")) (; ";")) (if_statement "if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n')" (( "(") (binary_expression "*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + iVar3 + -1)" (* "*") (cast_expression "(char *)(*(int *)(param_1 + 4) + iVar3 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + iVar3 + -1)" (( "(") (binary_expression "*(int *)(param_1 + 4) + iVar3 + -1" (binary_expression "*(int *)(param_1 + 4) + iVar3" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "-1")) () ")")))) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" ({ "{") (expression_statement "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);" (call_expression "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (parenthesized_expression "(*local_ac)" (( "(") (pointer_expression "*local_ac" (* "*") (identifier "local_ac")) () ")")) (argument_list "(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (( "(") (identifier "local_b0") (, ",") (binary_expression "PTR_DAT_000ad2c8 + -0x2c" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "-0x2c")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar13 = *(undefined **)(param_1 + 0xc);" (assignment_expression "puVar13 = *(undefined **)(param_1 + 0xc)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined **)(param_1 + 0xc)" (* "*") (cast_expression "(undefined **)(param_1 + 0xc)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" (identifier "puVar12") (= "=") (identifier "puVar13")) (; ";")) (if_statement "if (puVar13 != (undefined *)0x0) {\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" (if "if") (parenthesized_expression "(puVar13 != (undefined *)0x0)" (( "(") (binary_expression "puVar13 != (undefined *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);\n    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);\n    FUN_00079dd0(local_b0,puVar13,puVar12);\n    unaff_s3 = local_b0;\n    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }\n  }" ({ "{") (expression_statement "puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);" (assignment_expression "puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13)" (identifier "puVar12") (= "=") (cast_expression "(undefined *)(*(code *)PTR_strlen_000adc28)(puVar13)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strlen_000adc28)(puVar13)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" (( "(") (pointer_expression "*(code *)PTR_strlen_000adc28" (* "*") (cast_expression "(code *)PTR_strlen_000adc28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000adc28"))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))))) (; ";")) (expression_statement "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);" (assignment_expression "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230)" (identifier "local_ac") (= "=") (cast_expression "(code *)(PTR_LAB_000ad2f8 + -0x6230)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x6230)" (( "(") (binary_expression "PTR_LAB_000ad2f8 + -0x6230" (identifier "PTR_LAB_000ad2f8") (+ "+") (number_literal "-0x6230")) () ")")))) (; ";")) (expression_statement "FUN_00079dd0(local_b0,puVar13,puVar12);" (call_expression "FUN_00079dd0(local_b0,puVar13,puVar12)" (identifier "FUN_00079dd0") (argument_list "(local_b0,puVar13,puVar12)" (( "(") (identifier "local_b0") (, ",") (identifier "puVar13") (, ",") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "unaff_s3 = local_b0;" (assignment_expression "unaff_s3 = local_b0" (identifier "unaff_s3") (= "=") (identifier "local_b0")) (; ";")) (if_statement "if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" (if "if") (parenthesized_expression "(puVar12[*(int *)(param_1 + 0xc) + -1] != '\n')" (( "(") (binary_expression "puVar12[*(int *)(param_1 + 0xc) + -1] != '\n'" (subscript_expression "puVar12[*(int *)(param_1 + 0xc) + -1]" (identifier "puVar12") ([ "[") (binary_expression "*(int *)(param_1 + 0xc) + -1" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "-1")) (] "]")) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n    }" ({ "{") (expression_statement "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);" (call_expression "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (parenthesized_expression "(*local_ac)" (( "(") (pointer_expression "*local_ac" (* "*") (identifier "local_ac")) () ")")) (argument_list "(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (( "(") (identifier "local_b0") (, ",") (binary_expression "PTR_DAT_000ad2c8 + -0x2c" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "-0x2c")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x14) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x14) == 0" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007b0dc;" (goto "goto") (statement_identifier "LAB_0007b0dc") (; ";"))) (expression_statement "unaff_s4 = 0;" (assignment_expression "unaff_s4 = 0" (identifier "unaff_s4") (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s5 = local_94;" (assignment_expression "unaff_s5 = local_94" (identifier "unaff_s5") (= "=") (identifier "local_94")) (; ";")) (expression_statement "unaff_s6 = local_60;" (assignment_expression "unaff_s6 = local_60" (identifier "unaff_s6") (= "=") (identifier "local_60")) (; ";")) (expression_statement "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);" (assignment_expression "local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230)" (identifier "local_ac") (= "=") (cast_expression "(code *)(PTR_LAB_000ad2f8 + -0x6230)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000ad2f8 + -0x6230)" (( "(") (binary_expression "PTR_LAB_000ad2f8 + -0x6230" (identifier "PTR_LAB_000ad2f8") (+ "+") (number_literal "-0x6230")) () ")")))) (; ";")) (expression_statement "unaff_s3 = &local_64;" (assignment_expression "unaff_s3 = &local_64" (identifier "unaff_s3") (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "puVar12 = (undefined *)0xa;" (assignment_expression "puVar12 = (undefined *)0xa" (identifier "puVar12") (= "=") (cast_expression "(undefined *)0xa" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa"))) (; ";")) (expression_statement "local_a0 = PTR_DAT_000ad2c8 + -0x2c;" (assignment_expression "local_a0 = PTR_DAT_000ad2c8 + -0x2c" (identifier "local_a0") (= "=") (binary_expression "PTR_DAT_000ad2c8 + -0x2c" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "-0x2c"))) (; ";")) (do_statement "do {\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  } while( true );" (do "do") (compound_statement "{\n    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);\n    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);\n    puVar4 = unaff_s5;\n    puVar7 = unaff_s6;\n    do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);\n    *puVar8 = *unaff_s3;\n    if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);\n    uVar9 = *unaff_s8;\n    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);\n    iVar6 = 0;\n    (*local_ac)(local_b0,uVar9,uVar2);\n    do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);\n    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n    iVar6 = iVar6 + -1;\n    if (unaff_s8[1] == 0) goto LAB_0007b138;\n    while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }\n  }" ({ "{") (expression_statement "unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);" (assignment_expression "unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" (identifier "unaff_s8") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" (* "*") (cast_expression "(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x18) + unaff_s4 * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x18) + unaff_s4 * 4" (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (binary_expression "unaff_s4 * 4" (identifier "unaff_s4") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);" (call_expression "(*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5)" (parenthesized_expression "(*(code *)PTR_tcgetattr_000adb38)" (( "(") (pointer_expression "*(code *)PTR_tcgetattr_000adb38" (* "*") (cast_expression "(code *)PTR_tcgetattr_000adb38" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_tcgetattr_000adb38"))) () ")")) (argument_list "(uVar11,unaff_s5)" (( "(") (identifier "uVar11") (, ",") (identifier "unaff_s5") () ")"))) (; ";")) (expression_statement "puVar4 = unaff_s5;" (assignment_expression "puVar4 = unaff_s5" (identifier "puVar4") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "puVar7 = unaff_s6;" (assignment_expression "puVar7 = unaff_s6" (identifier "puVar7") (= "=") (identifier "unaff_s6")) (; ";")) (do_statement "do {\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    } while (puVar5 != unaff_s3);" (do "do") (compound_statement "{\n      puVar5 = puVar4 + 4;\n      puVar8 = puVar7 + 4;\n      uVar10 = puVar4[1];\n      uVar9 = puVar4[2];\n      uVar2 = puVar4[3];\n      *puVar7 = *puVar4;\n      puVar7[1] = uVar10;\n      puVar7[2] = uVar9;\n      puVar7[3] = uVar2;\n      puVar4 = puVar5;\n      puVar7 = puVar8;\n    }" ({ "{") (expression_statement "puVar5 = puVar4 + 4;" (assignment_expression "puVar5 = puVar4 + 4" (identifier "puVar5") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar8 = puVar7 + 4;" (assignment_expression "puVar8 = puVar7 + 4" (identifier "puVar8") (= "=") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar10 = puVar4[1];" (assignment_expression "uVar10 = puVar4[1]" (identifier "uVar10") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar9 = puVar4[2];" (assignment_expression "uVar9 = puVar4[2]" (identifier "uVar9") (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar2 = puVar4[3];" (assignment_expression "uVar2 = puVar4[3]" (identifier "uVar2") (= "=") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar7 = *puVar4;" (assignment_expression "*puVar7 = *puVar4" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar7[2] = uVar9;" (assignment_expression "puVar7[2] = uVar9" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar7[3] = uVar2;" (assignment_expression "puVar7[3] = uVar2" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" (identifier "puVar4") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" (identifier "puVar7") (= "=") (identifier "puVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar5 != unaff_s3)" (( "(") (binary_expression "puVar5 != unaff_s3" (identifier "puVar5") (!= "!=") (identifier "unaff_s3")) () ")")) (; ";")) (expression_statement "*puVar8 = *unaff_s3;" (assignment_expression "*puVar8 = *unaff_s3" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*unaff_s3" (* "*") (identifier "unaff_s3"))) (; ";")) (if_statement "if (unaff_s8[1] == 0) {\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }\n    else {\n      local_54 = local_54 | 0xb;\n    }" (if "if") (parenthesized_expression "(unaff_s8[1] == 0)" (( "(") (binary_expression "unaff_s8[1] == 0" (subscript_expression "unaff_s8[1]" (identifier "unaff_s8") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_54 = local_54 & 0xfffffff7 | 3;\n    }" ({ "{") (expression_statement "local_54 = local_54 & 0xfffffff7 | 3;" (assignment_expression "local_54 = local_54 & 0xfffffff7 | 3" (identifier "local_54") (= "=") (binary_expression "local_54 & 0xfffffff7 | 3" (binary_expression "local_54 & 0xfffffff7" (identifier "local_54") (& "&") (number_literal "0xfffffff7")) (| "|") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n      local_54 = local_54 | 0xb;\n    }" (else "else") (compound_statement "{\n      local_54 = local_54 | 0xb;\n    }" ({ "{") (expression_statement "local_54 = local_54 | 0xb;" (assignment_expression "local_54 = local_54 | 0xb" (identifier "local_54") (= "=") (binary_expression "local_54 | 0xb" (identifier "local_54") (| "|") (number_literal "0xb"))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);" (call_expression "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000adc6c)" (( "(") (pointer_expression "*(code *)PTR_tcsetattr_000adc6c" (* "*") (cast_expression "(code *)PTR_tcsetattr_000adc6c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_tcsetattr_000adc6c"))) () ")")) (argument_list "(uVar11,&DAT_0000540e,unaff_s6)" (( "(") (identifier "uVar11") (, ",") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")) (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "uVar9 = *unaff_s8;" (assignment_expression "uVar9 = *unaff_s8" (identifier "uVar9") (= "=") (pointer_expression "*unaff_s8" (* "*") (identifier "unaff_s8"))) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);" (assignment_expression "uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_strlen_000adc28)(uVar9)" (parenthesized_expression "(*(code *)PTR_strlen_000adc28)" (( "(") (pointer_expression "*(code *)PTR_strlen_000adc28" (* "*") (cast_expression "(code *)PTR_strlen_000adc28" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000adc28"))) () ")")) (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")")))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*local_ac)(local_b0,uVar9,uVar2);" (call_expression "(*local_ac)(local_b0,uVar9,uVar2)" (parenthesized_expression "(*local_ac)" (( "(") (pointer_expression "*local_ac" (* "*") (identifier "local_ac")) () ")")) (argument_list "(local_b0,uVar9,uVar2)" (( "(") (identifier "local_b0") (, ",") (identifier "uVar9") (, ",") (identifier "uVar2") () ")"))) (; ";")) (do_statement "do {\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);" (do "do") (compound_statement "{\n      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);\n      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);\n      if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }\n      iVar6 = iVar6 + iVar3;\n    }" ({ "{") (expression_statement "(*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);" (call_expression "(*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200)" (parenthesized_expression "(*(code *)PTR_prompt_ensure_result_size_000ada38)" (( "(") (pointer_expression "*(code *)PTR_prompt_ensure_result_size_000ada38" (* "*") (cast_expression "(code *)PTR_prompt_ensure_result_size_000ada38" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_prompt_ensure_result_size_000ada38"))) () ")")) (argument_list "(unaff_s8,(iVar6 * 5 >> 2) + 0x200)" (( "(") (identifier "unaff_s8") (, ",") (binary_expression "(iVar6 * 5 >> 2) + 0x200" (parenthesized_expression "(iVar6 * 5 >> 2)" (( "(") (binary_expression "iVar6 * 5 >> 2" (binary_expression "iVar6 * 5" (identifier "iVar6") (* "*") (number_literal "5")) (>> ">>") (number_literal "2")) () ")")) (+ "+") (number_literal "0x200")) () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);" (assignment_expression "iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6)" (parenthesized_expression "(*(code *)PTR_read_000add04)" (( "(") (pointer_expression "*(code *)PTR_read_000add04" (* "*") (cast_expression "(code *)PTR_read_000add04" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_read_000add04"))) () ")")) (argument_list "(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6)" (( "(") (identifier "uVar11") (, ",") (binary_expression "unaff_s8[2] + iVar6" (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]")) (+ "+") (identifier "iVar6")) (, ",") (binary_expression "(unaff_s8[3] + -1) - iVar6" (parenthesized_expression "(unaff_s8[3] + -1)" (( "(") (binary_expression "unaff_s8[3] + -1" (subscript_expression "unaff_s8[3]" (identifier "unaff_s8") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "-1")) () ")")) (- "-") (identifier "iVar6")) () ")")))) (; ";")) (if_statement "if (iVar3 < 1) {\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }" (if "if") (parenthesized_expression "(iVar3 < 1)" (( "(") (binary_expression "iVar3 < 1" (identifier "iVar3") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);\n        if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }\n        if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }\n        uVar2 = 0;\n        goto LAB_0007b02c;\n      }" ({ "{") (expression_statement "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);" (call_expression "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000adc6c)" (( "(") (pointer_expression "*(code *)PTR_tcsetattr_000adc6c" (* "*") (cast_expression "(code *)PTR_tcsetattr_000adc6c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_tcsetattr_000adc6c"))) () ")")) (argument_list "(uVar11,&DAT_0000540e,unaff_s5)" (( "(") (identifier "uVar11") (, ",") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")) (, ",") (identifier "unaff_s5") () ")"))) (; ";")) (if_statement "if (unaff_s8[1] == 0) {\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }" (if "if") (parenthesized_expression "(unaff_s8[1] == 0)" (( "(") (binary_expression "unaff_s8[1] == 0" (subscript_expression "unaff_s8[1]" (identifier "unaff_s8") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);\n        }" ({ "{") (expression_statement "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);" (call_expression "(*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (parenthesized_expression "(*local_ac)" (( "(") (pointer_expression "*local_ac" (* "*") (identifier "local_ac")) () ")")) (argument_list "(local_b0,PTR_DAT_000ad2c8 + -0x2c,1)" (( "(") (identifier "local_b0") (, ",") (binary_expression "PTR_DAT_000ad2c8 + -0x2c" (identifier "PTR_DAT_000ad2c8") (+ "+") (number_literal "-0x2c")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (if_statement "if ((undefined4 *)*local_a4 != local_b0) {\n          (*(code *)PTR_fclose_000adb84)();\n        }" (if "if") (parenthesized_expression "((undefined4 *)*local_a4 != local_b0)" (( "(") (binary_expression "(undefined4 *)*local_a4 != local_b0" (cast_expression "(undefined4 *)*local_a4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_a4" (* "*") (identifier "local_a4"))) (!= "!=") (identifier "local_b0")) () ")")) (compound_statement "{\n          (*(code *)PTR_fclose_000adb84)();\n        }" ({ "{") (expression_statement "(*(code *)PTR_fclose_000adb84)();" (call_expression "(*(code *)PTR_fclose_000adb84)()" (parenthesized_expression "(*(code *)PTR_fclose_000adb84)" (( "(") (pointer_expression "*(code *)PTR_fclose_000adb84" (* "*") (cast_expression "(code *)PTR_fclose_000adb84" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fclose_000adb84"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0007b02c;" (goto "goto") (statement_identifier "LAB_0007b02c") (; ";")) (} "}"))) (expression_statement "iVar6 = iVar6 + iVar3;" (assignment_expression "iVar6 = iVar6 + iVar3" (identifier "iVar6") (= "=") (binary_expression "iVar6 + iVar3" (identifier "iVar6") (+ "+") (identifier "iVar3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12)" (( "(") (binary_expression "(undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12" (cast_expression "(undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)*(char *)(unaff_s8[2] + iVar6 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(unaff_s8[2] + iVar6 + -1)" (* "*") (cast_expression "(char *)(unaff_s8[2] + iVar6 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s8[2] + iVar6 + -1)" (( "(") (binary_expression "unaff_s8[2] + iVar6 + -1" (binary_expression "unaff_s8[2] + iVar6" (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]")) (+ "+") (identifier "iVar6")) (+ "+") (number_literal "-1")) () ")")))))) (!= "!=") (identifier "puVar12")) () ")")) (; ";")) (expression_statement "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);" (call_expression "(*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5)" (parenthesized_expression "(*(code *)PTR_tcsetattr_000adc6c)" (( "(") (pointer_expression "*(code *)PTR_tcsetattr_000adc6c" (* "*") (cast_expression "(code *)PTR_tcsetattr_000adc6c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_tcsetattr_000adc6c"))) () ")")) (argument_list "(uVar11,&DAT_0000540e,unaff_s5)" (( "(") (identifier "uVar11") (, ",") (pointer_expression "&DAT_0000540e" (& "&") (identifier "DAT_0000540e")) (, ",") (identifier "unaff_s5") () ")"))) (; ";")) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (unaff_s8[1] == 0) goto LAB_0007b138;" (if "if") (parenthesized_expression "(unaff_s8[1] == 0)" (( "(") (binary_expression "unaff_s8[1] == 0" (subscript_expression "unaff_s8[1]" (identifier "unaff_s8") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007b138;" (goto "goto") (statement_identifier "LAB_0007b138") (; ";"))) (while_statement "while( true ) {\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      unaff_s4 = unaff_s4 + 1;\n      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;\n      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;\nLAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }\nLAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }\n      (*(code *)PTR___stack_chk_fail_000adca4)();\n      iVar6 = extraout_v1;\nLAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);\n    }" ({ "{") (expression_statement "unaff_s4 = unaff_s4 + 1;" (assignment_expression "unaff_s4 = unaff_s4 + 1" (identifier "unaff_s4") (= "=") (binary_expression "unaff_s4 + 1" (identifier "unaff_s4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)(unaff_s8[2] + iVar6) = 0;" (assignment_expression "*(undefined1 *)(unaff_s8[2] + iVar6) = 0" (pointer_expression "*(undefined1 *)(unaff_s8[2] + iVar6)" (* "*") (cast_expression "(undefined1 *)(unaff_s8[2] + iVar6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s8[2] + iVar6)" (( "(") (binary_expression "unaff_s8[2] + iVar6" (subscript_expression "unaff_s8[2]" (identifier "unaff_s8") ([ "[") (number_literal "2") (] "]")) (+ "+") (identifier "iVar6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;" (if "if") (parenthesized_expression "(unaff_s4 < *(uint *)(param_1 + 0x14))" (( "(") (binary_expression "unaff_s4 < *(uint *)(param_1 + 0x14)" (identifier "unaff_s4") (< "<") (pointer_expression "*(uint *)(param_1 + 0x14)" (* "*") (cast_expression "(uint *)(param_1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0007b0dc:\n      if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" (statement_identifier "LAB_0007b0dc") (: ":") (if_statement "if ((undefined4 *)*local_a4 == local_b0) {\n        uVar2 = 1;\n      }\n      else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" (if "if") (parenthesized_expression "((undefined4 *)*local_a4 == local_b0)" (( "(") (binary_expression "(undefined4 *)*local_a4 == local_b0" (cast_expression "(undefined4 *)*local_a4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_a4" (* "*") (identifier "local_a4"))) (== "==") (identifier "local_b0")) () ")")) (compound_statement "{\n        uVar2 = 1;\n      }" ({ "{") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" (else "else") (compound_statement "{\n        (*(code *)PTR_fclose_000adb84)();\n        uVar2 = 1;\n      }" ({ "{") (expression_statement "(*(code *)PTR_fclose_000adb84)();" (call_expression "(*(code *)PTR_fclose_000adb84)()" (parenthesized_expression "(*(code *)PTR_fclose_000adb84)" (( "(") (pointer_expression "*(code *)PTR_fclose_000adb84" (* "*") (cast_expression "(code *)PTR_fclose_000adb84" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fclose_000adb84"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (} "}"))))) (labeled_statement "LAB_0007b02c:\n      if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }" (statement_identifier "LAB_0007b02c") (: ":") (if_statement "if (local_2c == *(int *)puVar1) {\n        return uVar2;\n      }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar1)" (( "(") (binary_expression "local_2c == *(int *)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n        return uVar2;\n      }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___stack_chk_fail_000adca4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000adca4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000adca4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000adca4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000adca4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000adca4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = extraout_v1;" (assignment_expression "iVar6 = extraout_v1" (identifier "iVar6") (= "=") (identifier "extraout_v1")) (; ";")) (labeled_statement "LAB_0007b138:\n      (*local_ac)(local_b0,local_a0,1);" (statement_identifier "LAB_0007b138") (: ":") (expression_statement "(*local_ac)(local_b0,local_a0,1);" (call_expression "(*local_ac)(local_b0,local_a0,1)" (parenthesized_expression "(*local_ac)" (( "(") (pointer_expression "*local_ac" (* "*") (identifier "local_ac")) () ")")) (argument_list "(local_b0,local_a0,1)" (( "(") (identifier "local_b0") (, ",") (identifier "local_a0") (, ",") (number_literal "1") () ")"))) (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (identifier))))) (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (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: (parenthesized_expression (comma_expression left: (assignment_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: (identifier))) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))))) (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier)))) (do_statement body: (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 (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (identifier)))))) (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 (identifier) (pointer_expression argument: (identifier)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier))) 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))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (number_literal))))))) 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 (identifier) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (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))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (number_literal)))))))) condition: (parenthesized_expression (true))))))

undefined4 MASKED(int param_1)

{
  undefined *puVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  int iVar6;
  undefined4 *puVar7;
  undefined4 *puVar8;
  int extraout_v1;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  undefined *puVar12;
  undefined *puVar13;
  undefined4 *unaff_s3;
  uint unaff_s4;
  undefined4 *unaff_s5;
  undefined4 *unaff_s6;
  undefined4 *unaff_s8;
  undefined4 *local_b0;
  code *local_ac;
  undefined4 *local_a4;
  undefined *local_a0;
  undefined4 local_94 [12];
  undefined4 local_64;
  undefined4 local_60 [3];
  uint local_54;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_000adcd4;
  local_2c = *(int *)PTR___stack_chk_guard_000adcd4;
  if (*(int *)(param_1 + 0x14) != 0) {
    uVar11 = 0;
    puVar12 = PTR_DAT_000ad2c8 + -0x22a4;
    do {
      iVar6 = uVar11 * 4;
      uVar11 = uVar11 + 1;
      (*(code *)PTR_prompt_set_result_000ad434)
                (*(undefined4 *)(*(int *)(param_1 + 0x18) + iVar6),puVar12);
    } while (uVar11 < *(uint *)(param_1 + 0x14));
    if ((*(uint *)(param_1 + 0x14) != 0) &&
       (uVar2 = 0, *(int *)PTR_console_batch_mode_000ad368 != 0)) goto LAB_0007b02c;
  }
  uVar11 = (*(code *)PTR_open64_000adc18)(PTR_DAT_000ad2d0 + -0x7ccc,2);
  local_a4 = (undefined4 *)PTR_stderr_000adcf0;
  if ((int)uVar11 < 0) {
    uVar11 = 0;
    local_b0 = *(undefined4 **)PTR_stderr_000adcf0;
  }
  else {
    local_b0 = (undefined4 *)(*(code *)PTR_fdopen_000add1c)(uVar11,PTR_DAT_000ad2c8 + 0x632c);
  }
  if ((*(int *)(param_1 + 8) != 0) && (iVar6 = *(int *)(param_1 + 4), iVar6 != 0)) {
    iVar3 = (*(code *)PTR_strlen_000adc28)(iVar6);
    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);
    FUN_00079dd0(local_b0,iVar6,iVar3);
    unaff_s3 = local_b0;
    if (*(char *)(*(int *)(param_1 + 4) + iVar3 + -1) != '\n') {
      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);
    }
  }
  puVar13 = *(undefined **)(param_1 + 0xc);
  puVar12 = puVar13;
  if (puVar13 != (undefined *)0x0) {
    puVar12 = (undefined *)(*(code *)PTR_strlen_000adc28)(puVar13);
    local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);
    FUN_00079dd0(local_b0,puVar13,puVar12);
    unaff_s3 = local_b0;
    if (puVar12[*(int *)(param_1 + 0xc) + -1] != '\n') {
      (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);
    }
  }
  if (*(int *)(param_1 + 0x14) == 0) goto LAB_0007b0dc;
  unaff_s4 = 0;
  unaff_s5 = local_94;
  unaff_s6 = local_60;
  local_ac = (code *)(PTR_LAB_000ad2f8 + -0x6230);
  unaff_s3 = &local_64;
  puVar12 = (undefined *)0xa;
  local_a0 = PTR_DAT_000ad2c8 + -0x2c;
  do {
    unaff_s8 = *(undefined4 **)(*(int *)(param_1 + 0x18) + unaff_s4 * 4);
    (*(code *)PTR_tcgetattr_000adb38)(uVar11,unaff_s5);
    puVar4 = unaff_s5;
    puVar7 = unaff_s6;
    do {
      puVar5 = puVar4 + 4;
      puVar8 = puVar7 + 4;
      uVar10 = puVar4[1];
      uVar9 = puVar4[2];
      uVar2 = puVar4[3];
      *puVar7 = *puVar4;
      puVar7[1] = uVar10;
      puVar7[2] = uVar9;
      puVar7[3] = uVar2;
      puVar4 = puVar5;
      puVar7 = puVar8;
    } while (puVar5 != unaff_s3);
    *puVar8 = *unaff_s3;
    if (unaff_s8[1] == 0) {
      local_54 = local_54 & 0xfffffff7 | 3;
    }
    else {
      local_54 = local_54 | 0xb;
    }
    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s6);
    uVar9 = *unaff_s8;
    uVar2 = (*(code *)PTR_strlen_000adc28)(uVar9);
    iVar6 = 0;
    (*local_ac)(local_b0,uVar9,uVar2);
    do {
      (*(code *)PTR_prompt_ensure_result_size_000ada38)(unaff_s8,(iVar6 * 5 >> 2) + 0x200);
      iVar3 = (*(code *)PTR_read_000add04)(uVar11,unaff_s8[2] + iVar6,(unaff_s8[3] + -1) - iVar6);
      if (iVar3 < 1) {
        (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);
        if (unaff_s8[1] == 0) {
          (*local_ac)(local_b0,PTR_DAT_000ad2c8 + -0x2c,1);
        }
        if ((undefined4 *)*local_a4 != local_b0) {
          (*(code *)PTR_fclose_000adb84)();
        }
        uVar2 = 0;
        goto LAB_0007b02c;
      }
      iVar6 = iVar6 + iVar3;
    } while ((undefined *)(int)*(char *)(unaff_s8[2] + iVar6 + -1) != puVar12);
    (*(code *)PTR_tcsetattr_000adc6c)(uVar11,&DAT_0000540e,unaff_s5);
    iVar6 = iVar6 + -1;
    if (unaff_s8[1] == 0) goto LAB_0007b138;
    while( true ) {
      unaff_s4 = unaff_s4 + 1;
      *(undefined1 *)(unaff_s8[2] + iVar6) = 0;
      if (unaff_s4 < *(uint *)(param_1 + 0x14)) break;
LAB_0007b0dc:
      if ((undefined4 *)*local_a4 == local_b0) {
        uVar2 = 1;
      }
      else {
        (*(code *)PTR_fclose_000adb84)();
        uVar2 = 1;
      }
LAB_0007b02c:
      if (local_2c == *(int *)puVar1) {
        return uVar2;
      }
      (*(code *)PTR___stack_chk_fail_000adca4)();
      iVar6 = extraout_v1;
LAB_0007b138:
      (*local_ac)(local_b0,local_a0,1);
    }
  } while( true );
}

