
vector * compile_program(vector *vector)

{
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  vector *pvVar1;
  sed_cmd *psVar2;
  int iVar3;
  int *piVar4;
  _Bool _Var7;
  addr *paVar5;
  char *pcVar6;
  int iVar8;
  size_t sVar9;
  int in_a2;
  int iVar10;
  char ch;
  undefined *puVar11;
  addr a;
  replacement root;
  mbstate_t cur_stat;
  
  pvVar1 = *(vector **)PTR___stack_chk_guard_000424f0;
  if (vector == (vector *)0x0) {
    vector = (vector *)xcalloc(1,0xc);
    vector->v = (sed_cmd *)0x0;
    vector->v_allocated = 0;
    vector->v_length = 0;
    in_a2 = 0;
    _obstack_begin((obstack *)(PTR_DAT_00042168 + 0x259c),0,0,
                   (_func_void_ptr_size_t *)PTR_xzalloc_000421d0,
                   (_func_void_void_ptr *)PTR_free_000424fc);
  }
  iVar8 = 10;
  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {
    read_text((text_buf *)0x0,10);
  }
  do {
    do {
      iVar3 = inchar();
    } while (iVar3 == 0x3b);
    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();
  } while ((*(ushort *)(*piVar4 + iVar3 * 2) & 0x20) != 0);
  piVar4 = (int *)PTR_posixicity_000421a4;
  if (iVar3 == -1) goto LAB_00016610;
  sVar9 = vector->v_allocated + 0x28;
  if (vector->v_length == vector->v_allocated) {
    vector->v_allocated = sVar9;
    in_a2 = 1;
    if ((int)(sVar9 * 0x18) < 0 ||
        (sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f)) {
                    /* WARNING: Subroutine does not return */
      xalloc_die();
    }
    psVar2 = (sed_cmd *)xrealloc(vector->v,sVar9 * 0x18);
    vector->v = psVar2;
  }
  psVar2 = vector->v + vector->v_length;
  psVar2->a1 = (addr *)0x0;
  psVar2->a2 = (addr *)0x0;
  psVar2->range_state = RANGE_INACTIVE;
  psVar2->addr_bang = '\0';
  psVar2->cmd = '\0';
  iVar8 = iVar3;
  _Var7 = compile_address(&a,iVar3);
  if (CONCAT31(extraout_var_00,_Var7) == 0) {
LAB_0001570c:
    if (iVar3 == 0x21) {
LAB_00014f54:
      psVar2->addr_bang = '\x01';
      iVar3 = in_nonblank();
      if (iVar3 == 0x21) {
        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);
                    /* WARNING: Subroutine does not return */
        bad_prog(pcVar6);
      }
    }
    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar3 - 0x3dU < 0x3e)) {
                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */
                    /* WARNING: Treating indirect jump as call */
      pvVar1 = (vector *)
               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))();
      return pvVar1;
    }
    ch = (char)iVar3;
  }
  else {
    iVar8 = 0x10;
    if (a.addr_type - ADDR_IS_STEP < 2) {
      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);
                    /* WARNING: Subroutine does not return */
      bad_prog(pcVar6);
    }
    paVar5 = (addr *)xmemdup(&a,0x10);
    psVar2->a1 = paVar5;
    iVar3 = in_nonblank();
    if (iVar3 == 0x2c) {
      iVar8 = in_nonblank();
      _Var7 = compile_address(&a,iVar8);
      iVar8 = 0x10;
      if (CONCAT31(extraout_var,_Var7) == 0) {
        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);
                    /* WARNING: Subroutine does not return */
        bad_prog(pcVar6);
      }
      paVar5 = (addr *)xmemdup(&a,0x10);
      psVar2->a2 = paVar5;
      iVar3 = in_nonblank();
    }
    if ((psVar2->a1->addr_type != ADDR_IS_NUM) || (psVar2->a1->addr_number != 0)) goto LAB_0001570c;
    in_a2 = 5;
    if (((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)) ||
       (*(int *)PTR_posixicity_000421a4 == 2)) {
      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);
                    /* WARNING: Subroutine does not return */
      bad_prog(pcVar6);
    }
    ch = (char)iVar3;
    if (iVar3 == 0x21) goto LAB_00014f54;
  }
  piVar4 = (int *)(uint)(iVar3 + 1U < 0x7f);
  psVar2->cmd = ch;
  if (piVar4 != (int *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x00015750. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    pvVar1 = (vector *)
             (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))();
    return pvVar1;
  }
  bad_command(ch);
LAB_00016610:
  if ((*piVar4 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {
    pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);
                    /* WARNING: Subroutine does not return */
    bad_prog(pcVar6);
  }
  if (pvVar1 == *(vector **)PTR___stack_chk_guard_000424f0) {
    return vector;
  }
  puVar11 = PTR___stack_chk_fail_000424d0;
  (*(code *)PTR___stack_chk_fail_000424d0)();
  iVar10 = *(int *)(puVar11 + 0x2ba0c);
  *(undefined4 *)(iVar10 + 0x25f4) = 0;
  *(int *)(iVar10 + 0x25e8) = iVar8;
  *(int *)(iVar10 + 0x25ec) = iVar8;
  *(int *)(iVar10 + 0x25f0) = iVar8 + in_a2;
  iVar8 = *(int *)(puVar11 + 0x2ba0c);
  *(undefined4 *)(iVar8 + 0x25e0) = 0;
  *(undefined4 *)(iVar8 + 0x25dc) = 0;
  iVar3 = *(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) + 1;
  *(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) = iVar3;
  *(int *)(iVar8 + 0x25e4) = iVar3;
  pvVar1 = compile_program(pvVar1);
  *(undefined4 *)(iVar10 + 0x25e8) = 0;
  *(undefined4 *)(iVar10 + 0x25ec) = 0;
  *(undefined4 *)(iVar10 + 0x25f0) = 0;
  *(undefined1 *)(*(int *)(puVar11 + 0x2ba0c) + 0x2010) = 0;
  return pvVar1;
}



int * FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  undefined1 uVar6;
  undefined *puVar7;
  int local_58 [11];
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_000424f0;
  if (param_1 == (int *)0x0) {
    param_1 = (int *)xcalloc(1,0xc);
    *param_1 = 0;
    param_1[1] = 0;
    param_1[2] = 0;
    param_3 = 0;
    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);
  }
  iVar5 = 10;
  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {
    FUN_00014a5c(0);
  }
  do {
    do {
      iVar1 = FUN_0001315c();
    } while (iVar1 == 0x3b);
    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();
  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);
  piVar2 = (int *)PTR_posixicity_000421a4;
  if (iVar1 == -1) goto LAB_00016610;
  iVar5 = param_1[1] + 0x28;
  if (param_1[2] == param_1[1]) {
    param_1[1] = iVar5;
    param_3 = 1;
    if (iVar5 * 0x18 < 0 ||
        ((uint)(iVar5 * 3) >> 0x1d != 0 ||
        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {
                    /* WARNING: Subroutine does not return */
      xalloc_die(*param_1);
    }
    iVar5 = xrealloc(*param_1,iVar5 * 0x18);
    *param_1 = iVar5;
  }
  piVar2 = (int *)(*param_1 + param_1[2] * 0x18);
  *piVar2 = 0;
  piVar2[1] = 0;
  piVar2[2] = 0;
  *(undefined1 *)(piVar2 + 3) = 0;
  *(undefined1 *)((int)piVar2 + 0xd) = 0;
  iVar5 = iVar1;
  iVar3 = FUN_0001406c(local_58);
  if (iVar3 == 0) {
LAB_0001570c:
    if (iVar1 == 0x21) {
LAB_00014f54:
      *(undefined1 *)(piVar2 + 3) = 1;
      iVar1 = FUN_00013234();
      if (iVar1 == 0x21) {
        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);
                    /* WARNING: Subroutine does not return */
        bad_prog(uVar4);
      }
    }
    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {
                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */
                    /* WARNING: Treating indirect jump as call */
      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48
                                                  )))();
      return piVar2;
    }
    uVar6 = (undefined1)iVar1;
  }
  else {
    iVar5 = 0x10;
    if (local_58[0] - 4U < 2) {
      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);
                    /* WARNING: Subroutine does not return */
      bad_prog(uVar4);
    }
    iVar1 = xmemdup(local_58);
    *piVar2 = iVar1;
    iVar1 = FUN_00013234();
    if (iVar1 == 0x2c) {
      uVar4 = FUN_00013234();
      iVar1 = FUN_0001406c(local_58,uVar4);
      iVar5 = 0x10;
      if (iVar1 == 0) {
        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);
                    /* WARNING: Subroutine does not return */
        bad_prog(uVar4);
      }
      iVar1 = xmemdup(local_58);
      piVar2[1] = iVar1;
      iVar1 = FUN_00013234();
    }
    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;
    param_3 = 5;
    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||
       (*(int *)PTR_posixicity_000421a4 == 2)) {
      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);
                    /* WARNING: Subroutine does not return */
      bad_prog(uVar4);
    }
    uVar6 = (undefined1)iVar1;
    if (iVar1 == 0x21) goto LAB_00014f54;
  }
  *(undefined1 *)((int)piVar2 + 0xd) = uVar6;
  if (iVar1 + 1U < 0x7f) {
                    /* WARNING: Could not emulate address calculation at 0x00015744 */
                    /* WARNING: Treating indirect jump as call */
    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()
    ;
    return piVar2;
  }
  piVar2 = (int *)FUN_00014470();
LAB_00016610:
  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {
    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);
                    /* WARNING: Subroutine does not return */
    bad_prog(uVar4);
  }
  if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {
    return param_1;
  }
  puVar7 = PTR___stack_chk_fail_000424d0;
  (*(code *)PTR___stack_chk_fail_000424d0)();
  iVar3 = *(int *)(puVar7 + 0x2ba0c);
  *(undefined4 *)(iVar3 + 0x25f4) = 0;
  *(int *)(iVar3 + 0x25e8) = iVar5;
  *(int *)(iVar3 + 0x25ec) = iVar5;
  *(int *)(iVar3 + 0x25f0) = iVar5 + param_3;
  iVar5 = *(int *)(puVar7 + 0x2ba0c);
  *(undefined4 *)(iVar5 + 0x25e0) = 0;
  *(undefined4 *)(iVar5 + 0x25dc) = 0;
  iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;
  *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;
  *(int *)(iVar5 + 0x25e4) = iVar1;
  piVar2 = (int *)FUN_00014ce0();
  *(undefined4 *)(iVar3 + 0x25e8) = 0;
  *(undefined4 *)(iVar3 + 0x25ec) = 0;
  *(undefined4 *)(iVar3 + 0x25f0) = 0;
  *(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;
  return piVar2;
}


lui gp,0x3
addiu gp,gp,0x5460
addu gp,gp,t9
addiu sp,sp,-0xa8
sw ra,0xa4(sp)
sw s8,0xa0(sp)
sw s7,0x9c(sp)
sw s6,0x98(sp)
sw s5,0x94(sp)
sw s4,0x90(sp)
sw s3,0x8c(sp)
sw s2,0x88(sp)
sw s1,0x84(sp)
sw s0,0x80(sp)
sw gp,0x18(sp)
or s0,a0,zero
lw v0,-0x7c50(gp)
lw v0,0x0(v0)
sw v0,0x7c(sp)
beq a0,zero,0x00014d88
_li a1,0xc
lw v0,-0x7fd8(gp)
lw v0,0x25d0(v0)
beq v0,zero,0x00014d5c
_li a1,0xa
or a0,zero,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x4a5c
bal 0x00014a5c
_nop
lw gp,0x18(sp)
lw s1,-0x7fcc(gp)
addiu s1,s1,0x315c
lw v0,-0x7fcc(gp)
sw v0,0x28(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x1b3c
sw v0,0x44(sp)
lw v0,-0x7fcc(gp)
addiu v0,v0,0x3458
b 0x000155ec
_sw v0,0x48(sp)
li a0,0x1
lw t9,-0x7f74(gp)
bal 0x0002ae00
_nop
lw gp,0x18(sp)
or s0,v0,zero
sw zero,0x0(v0)
sw zero,0x4(v0)
sw zero,0x8(v0)
lw v0,-0x7c44(gp)
sw v0,0x10(sp)
lw a3,-0x7f70(gp)
or a2,zero,zero
or a1,zero,zero
lw a0,-0x7fd8(gp)
addiu a0,a0,0x259c
lw t9,-0x7f6c(gp)
bal 0x0002c750
_nop
lw gp,0x18(sp)
b 0x00014d38
_lw v0,-0x7fd8(gp)
sw a1,0x4(s0)
srl a2,a1,0x1f
sll v0,a1,0x1
addu v1,v0,a1
sltu v0,v1,v0
addu v0,v0,a2
srl a2,v1,0x1d
sll v0,v0,0x3
or v0,a2,v0
sltu v0,zero,v0
ext v1,v1,0x1c,0x1
li a2,0x1
movn v0,a2,v1
bne v0,zero,0x00014e40
_lw a0,0x0(s0)
sll v0,a1,0x1
addu a1,v0,a1
sll a1,a1,0x3
lw t9,-0x7f68(gp)
bal 0x0002ab70
_nop
lw gp,0x18(sp)
b 0x00015654
_sw v0,0x0(s0)
lw t9,-0x7f64(gp)
bal 0x0002af30
_nop
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x1923
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
addiu t9,t9,0x3234
bal 0x00013234
_nop
lw gp,0x18(sp)
or a1,v0,zero
addiu a0,sp,0x50
lw v0,0x28(sp)
addiu t9,v0,0x406c
bal 0x0001406c
_nop
lw gp,0x18(sp)
beq v0,zero,0x00014ee4
_li a1,0x10
addiu a0,sp,0x50
lw t9,-0x7f78(gp)
bal 0x0002ae64
_nop
lw gp,0x18(sp)
sw v0,0x4(s2)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3234
bal 0x00013234
_nop
lw gp,0x18(sp)
b 0x000156f4
_or s4,v0,zero
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x1932
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw v0,0x4(v0)
bne v0,zero,0x0001570c
_li v0,0x21
lw v0,0x4(s2)
beq v0,zero,0x00014fb0
_li a2,0x5
lw v1,0x0(v0)
li v0,0x1
bne v1,v0,0x00014fb0
_lw v0,-0x7f9c(gp)
lw v1,0x0(v0)
li v0,0x2
beq v1,v0,0x00014fb0
_li v0,0x21
bne s4,v0,0x00015728
_seb a0,s4
li v0,0x1
sb v0,0xc(s2)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3234
bal 0x00013234
_nop
lw gp,0x18(sp)
or s4,v0,zero
li v0,0x21
bne s4,v0,0x00015714
_lw v0,-0x7f9c(gp)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x1940
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x168f
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
sltiu v1,v0,0x3e
beq v1,zero,0x00015724
_sll v1,v0,0x2
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x1f48
addu v0,v0,v1
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
seb a0,s4
lw t9,-0x7fcc(gp)
addiu t9,t9,0x4470
bal 0x00014470
_nop
lw v0,0x4(s2)
beq v0,zero,0x00015728
_seb a0,s4
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x182b
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw v0,0x0(s2)
bne v0,zero,0x000150b8
_or t9,s1,zero
bal 0x0001315c
_nop
lw gp,0x18(sp)
li v1,0x6e
beq v0,v1,0x000150e8
_li v1,-0x1
beq v0,v1,0x000155ec
_li v1,0xa
beq v0,v1,0x000155f0
_or t9,s1,zero
li s2,-0x1
li s3,0xa
or t9,s1,zero
bal 0x0001315c
_nop
lw gp,0x18(sp)
beq v0,s2,0x000155f0
_or t9,s1,zero
bne v0,s3,0x00015094
_nop
b 0x000155f0
_nop
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x185f
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw v0,-0x7fd8(gp)
lbu v0,0x2010(v0)
beq v0,zero,0x0001508c
_li s2,-0x1
lw v0,-0x7fd8(gp)
lw v0,0x25e0(v0)
sltiu v0,v0,0x2
beq v0,zero,0x00015090
_li s3,0xa
lw v0,-0x7fd8(gp)
lw v0,0x25e8(v0)
beq v0,zero,0x0001671c
_addiu v0,v0,0x2
lw v1,-0x7fd8(gp)
lw v1,0x25ec(v1)
bne v1,v0,0x00015094
_or t9,s1,zero
lw v0,-0x7f60(gp)
li v1,0x1
b 0x00015088
_sb v1,0x0(v0)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x32b4
bal 0x000132b4
_nop
lw gp,0x18(sp)
or s2,v0,zero
lb v0,0x0(v0)
bne v0,zero,0x00015168
_or a0,s2,zero
lw a0,-0x7fc8(gp)
addiu a0,a0,-0x22f8
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x22f4
lw t9,-0x7c1c(gp)
jalr t9
_nop
lw gp,0x18(sp)
bgtz v0,0x000151a4
_or a0,s2,zero
lw t9,-0x7c44(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,-0x7f9c(gp)
b 0x000155ec
_sw zero,0x0(v0)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x16ad
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw s3,-0x7fd8(gp)
lw a3,-0x7fd8(gp)
addiu a3,a3,0x25dc
or a2,zero,zero
lw a1,0x8(s0)
lw a0,0x25c8(s3)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3524
bal 0x00013524
_nop
lw gp,0x18(sp)
sw v0,0x25c8(s3)
lb v0,0xc(s2)
sltiu v0,v0,0x1
b 0x000155e0
_sb v0,0xc(s2)
lw v0,-0x7fd8(gp)
lw v0,0x25c8(v0)
beq v0,zero,0x00015288
_li a2,0x5
lw v0,0x0(s2)
bne v0,zero,0x000152b4
_lw t9,-0x7fcc(gp)
addiu t9,t9,0x43c4
bal 0x000143c4
_nop
lw gp,0x18(sp)
lw s2,-0x7fd8(gp)
lw v1,0x25c8(s2)
lw a2,0x8(s0)
lw a1,0x0(v1)
lw a0,0x0(s0)
sll v0,a1,0x1
addu v0,v0,a1
sll v0,v0,0x3
addu v0,a0,v0
sw a2,0x10(v0)
lw s3,0x14(v1)
lw a0,0x4(v1)
lw t9,-0x7c44(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x000155e0
_sw s3,0x25c8(s2)
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x18ea
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x189b
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw v0,-0x7fa4(gp)
lbu v0,0x0(v0)
bne v0,zero,0x0001531c
_lw t9,-0x7fcc(gp)
addiu t9,t9,0x3234
bal 0x00013234
_nop
lw gp,0x18(sp)
li v1,-0x1
beq v0,v1,0x00015314
_li v1,0xa
bne v0,v1,0x0001536c
_li v1,0x5c
b 0x000155e0
_sw zero,0x14(s2)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x160c
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3234
bal 0x00013234
_nop
lw gp,0x18(sp)
li v1,-0x1
beq v0,v1,0x000153bc
_li v1,0x5c
beq v0,v1,0x000153ec
_lw v1,-0x7f9c(gp)
lw a0,0x0(v1)
li v1,0x2
beq a0,v1,0x00015404
_or a0,v0,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x30a0
bal 0x000130a0
_nop
lw gp,0x18(sp)
li a1,0xa
addiu a0,s2,0x10
lw t9,-0x7fcc(gp)
addiu t9,t9,0x4a5c
bal 0x00014a5c
_nop
lw gp,0x18(sp)
b 0x000155e4
_lw v0,0x8(s0)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x18bc
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
or t9,s1,zero
bal 0x0001315c
_nop
lw gp,0x18(sp)
b 0x0001539c
_or a1,v0,zero
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x18bc
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw v0,0x0(s2)
bne v0,zero,0x000154b0
_lw t9,-0x7fcc(gp)
addiu t9,t9,0x32b4
bal 0x000132b4
_nop
lw gp,0x18(sp)
or s3,v0,zero
lb v0,0x0(v0)
beq v0,zero,0x000154e0
_lw s4,-0x7fd8(gp)
or a3,zero,zero
or a2,s3,zero
lw a1,0x8(s0)
lw a0,0x25d4(s4)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3524
bal 0x00013524
_nop
lw gp,0x18(sp)
sw v0,0x25d4(s4)
lw v0,-0x7f5c(gp)
lbu v0,0x0(v0)
beq v0,zero,0x000155e0
_or a0,s3,zero
lw t9,-0x7c48(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x000155e0
_sw v0,0x10(s2)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x187c
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x1646
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw s2,-0x7fd8(gp)
lw s3,0x25d8(s2)
lw s4,0x8(s0)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x32b4
bal 0x000132b4
_nop
lw gp,0x18(sp)
or a3,zero,zero
or a2,v0,zero
or a1,s4,zero
or a0,s3,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3524
bal 0x00013524
_nop
lw gp,0x18(sp)
b 0x000155e0
_sw v0,0x25d8(s2)
lw v0,0x4(s2)
bne v0,zero,0x00015758
_li a2,0x5
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3234
bal 0x00013234
_nop
lw gp,0x18(sp)
andi a1,v0,0xff
lw v1,0x0(s3)
sll a1,a1,0x1
addu v1,v1,a1
lhu v1,0x0(v1)
andi v1,v1,0x8
beq v1,zero,0x000155ac
_lw v1,-0x7f9c(gp)
lw a0,0x0(v1)
li v1,0x2
bne a0,v1,0x00015784
_or a0,v0,zero
li v1,-0x1
sw v1,0x10(s2)
or a0,v0,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x30a0
bal 0x000130a0
_nop
lw gp,0x18(sp)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x43c4
bal 0x000143c4
_nop
lw gp,0x18(sp)
lw v0,0x8(s0)
addiu v0,v0,0x1
sw v0,0x8(s0)
or t9,s1,zero
bal 0x0001315c
_nop
lw gp,0x18(sp)
or s4,v0,zero
li v0,0x3b
beq s4,v0,0x000155ec
_lw t9,-0x7dcc(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s3,v0,zero
lw v0,0x0(v0)
sll v1,s4,0x1
addu v0,v0,v1
lhu v0,0x0(v0)
andi v0,v0,0x20
bne v0,zero,0x000155f0
_or t9,s1,zero
li v0,-0x1
beq s4,v0,0x00016610
_lw v0,-0x7f9c(gp)
lw a1,0x4(s0)
lw v0,0x8(s0)
beq v0,a1,0x00014de0
_addiu a1,a1,0x28
lw v0,0x8(s0)
sll s2,v0,0x1
addu s2,s2,v0
sll v0,s2,0x3
lw s2,0x0(s0)
addu s2,s2,v0
sw zero,0x0(s2)
sw zero,0x4(s2)
sw zero,0x8(s2)
sb zero,0xc(s2)
sb zero,0xd(s2)
or a1,s4,zero
addiu a0,sp,0x50
lw v0,0x28(sp)
addiu t9,v0,0x406c
bal 0x0001406c
_nop
lw gp,0x18(sp)
beq v0,zero,0x0001570c
_li v0,0x21
lw v0,0x50(sp)
addiu v0,v0,-0x4
sltiu v0,v0,0x2
bne v0,zero,0x00014e4c
_li a1,0x10
addiu a0,sp,0x50
lw t9,-0x7f78(gp)
bal 0x0002ae64
_nop
lw gp,0x18(sp)
sw v0,0x0(s2)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3234
bal 0x00013234
_nop
lw gp,0x18(sp)
or s4,v0,zero
li v0,0x2c
beq s4,v0,0x00014e7c
_lw t9,-0x7fcc(gp)
lw v0,0x0(s2)
lw a0,0x0(v0)
li v1,0x2
beq a0,v1,0x00014f14
_nop
li v0,0x21
beq s4,v0,0x00014f54
_lw v0,-0x7f9c(gp)
lw v1,0x0(v0)
li v0,0x2
beq v1,v0,0x00014fdc
_addiu v0,s4,-0x3d
seb a0,s4
addiu s4,s4,0x1
sltiu v0,s4,0x7f
beq v0,zero,0x00016600
_sb a0,0xd(s2)
sll v0,s4,0x2
lw s4,-0x7fc8(gp)
addiu s4,s4,-0x1e50
addu s4,s4,v0
lw v0,0x0(s4)
addu v0,v0,gp
jr v0
_nop
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x182b
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw t9,0x48(sp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x000155cc
_sw v0,0x10(s2)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x43c4
bal 0x000143c4
_nop
lw gp,0x18(sp)
b 0x000155e4
_lw v0,0x8(s0)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x37a4
bal 0x000137a4
_nop
lw gp,0x18(sp)
or s3,v0,zero
or a0,v0,zero
lw t9,-0x7fb4(gp)
bal 0x0001efc8
_nop
lw gp,0x18(sp)
lb v1,0x0(v0)
beq v1,zero,0x00015820
_or a0,v0,zero
lw t9,-0x7fb0(gp)
bal 0x0002aed0
_nop
lw gp,0x18(sp)
sw v0,0x10(s2)
or a0,s3,zero
lw t9,-0x7fac(gp)
bal 0x0001f114
_nop
lw gp,0x18(sp)
b 0x000155e4
_lw v0,0x8(s0)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x15e4
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
or a2,zero,zero
lw v0,-0x7f58(gp)
lw a1,0x0(v0)
lw a0,-0x7fd8(gp)
addiu a0,a0,0x2598
lw t9,-0x7fcc(gp)
addiu t9,t9,0x38c0
bal 0x000138c0
_nop
lw gp,0x18(sp)
b 0x000155e0
_sw v0,0x10(s2)
li a2,0x1
lw v0,-0x7f54(gp)
lw a1,0x0(v0)
lw a0,-0x7fd8(gp)
addiu a0,a0,0x2594
lw t9,-0x7fcc(gp)
addiu t9,t9,0x38c0
bal 0x000138c0
_nop
lw gp,0x18(sp)
b 0x000155e0
_sw v0,0x10(s2)
or t9,s1,zero
bal 0x0001315c
_nop
lw gp,0x18(sp)
or s4,v0,zero
li a1,0x1
or a0,v0,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3bec
bal 0x00013bec
_nop
lw gp,0x18(sp)
beq v0,zero,0x00015a50
_sw v0,0x30(sp)
or a1,zero,zero
or a0,s4,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3bec
bal 0x00013bec
_nop
lw gp,0x18(sp)
beq v0,zero,0x00015a80
_sw v0,0x2c(sp)
lw v1,-0x7fd8(gp)
addiu v1,v1,0x259c
lw v0,0x10(v1)
lw v1,0xc(v1)
subu v0,v0,v1
sltiu v0,v0,0x14
bne v0,zero,0x00015ab0
_li a1,0x14
lw v1,-0x7fd8(gp)
addiu v1,v1,0x259c
lw v0,0xc(v1)
addiu v0,v0,0x14
lw s7,0x8(v1)
beq v0,s7,0x00015ad0
_lw v1,-0x7fd8(gp)
lw v1,-0x7fd8(gp)
addiu v1,v1,0x259c
lw a0,0x18(v1)
addu v0,v0,a0
nor a0,zero,a0
and v0,v0,a0
sw v0,0xc(v1)
lw a0,0x4(v1)
lw v1,0x10(v1)
subu v0,v0,a0
subu a0,v1,a0
sltu v0,a0,v0
beq v0,zero,0x0001598c
_lw v0,-0x7fd8(gp)
lw v0,-0x7fd8(gp)
sw v1,0x25a8(v0)
lw v0,-0x7fd8(gp)
addiu v0,v0,0x259c
lw v1,0xc(v0)
sw v1,0x8(v0)
sw s7,0x10(s2)
lw s5,0x2c(sp)
or a0,s5,zero
lw t9,-0x7fb4(gp)
bal 0x0001efc8
_nop
lw gp,0x18(sp)
or s4,v0,zero
or a0,s5,zero
lw t9,-0x7f80(gp)
bal 0x0001efd0
_nop
lw gp,0x18(sp)
or s5,v0,zero
lbu v0,0x10(s7)
ins v0,zero,0x0,0x4
sb v0,0x10(s7)
or a1,s5,zero
or a0,s4,zero
lw t9,-0x7f78(gp)
bal 0x0002ae64
_nop
lw gp,0x18(sp)
or s4,v0,zero
li a2,0x1
or a1,s5,zero
or a0,v0,zero
lw t9,-0x7f7c(gp)
bal 0x0001451c
_nop
lw gp,0x18(sp)
addu s5,s4,v0
sltu v0,s4,s5
beq v0,zero,0x00015d34
_or a0,s4,zero
sw zero,0x24(sp)
addiu s6,sp,0x60
or a2,zero,zero
lw v0,-0x7fcc(gp)
addiu v0,v0,0x2f80
sw v0,0x20(sp)
lw s8,-0x7f9c(gp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x1c54
b 0x00015b78
_sw v0,0x34(sp)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x17f2
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x17f2
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw a0,-0x7fd8(gp)
addiu a0,a0,0x259c
lw t9,-0x7fc4(gp)
bal 0x0002c7fc
_nop
lw gp,0x18(sp)
b 0x00015930
_lw v1,-0x7fd8(gp)
addiu v1,v1,0x259c
lbu a0,0x28(v1)
li a1,0x1
ins a0,a1,0x6,0x1
b 0x00015948
_sb a0,0x28(v1)
subu a1,s4,a0
lw t9,0x20(sp)
jalr t9
_nop
lw gp,0x18(sp)
addiu a1,s4,0x1
beq s5,a1,0x00015b4c
_sw v0,0x10(s6)
lw a0,0x0(s8)
li v1,0x2
beq a0,v1,0x00015bb8
_nop
lb a2,0x1(s4)
addiu v1,a2,-0x30
andi a0,v1,0xff
sltiu a0,a0,0x46
beq a0,zero,0x00015c58
_andi v1,v1,0xff
sll v1,v1,0x2
lw a0,0x34(sp)
addu v1,a0,v1
lw v1,0x0(v1)
addu v1,v1,gp
jr v1
_nop
lw v1,0x4(v0)
addiu v1,v1,0x1
sw v1,0x4(v0)
lw a2,0x24(sp)
addiu a0,s4,0x2
or s6,v0,zero
or s4,a1,zero
addiu s4,s4,0x1
sltu v0,s4,s5
beq v0,zero,0x00015c88
_sltu v0,a0,s5
lb v0,0x0(s4)
li v1,0x5c
beq v0,v1,0x00015ae8
_li v1,0x26
bne v0,v1,0x00015b68
_subu a1,s4,a0
lw t9,0x20(sp)
jalr t9
_nop
lw gp,0x18(sp)
sw v0,0x10(s6)
sw zero,0x8(v0)
addiu a0,s4,0x1
or s6,v0,zero
b 0x00015b68
_lw a2,0x24(sp)
lb a2,0x1(s4)
andi a0,a2,0xff
lw v1,0x0(s3)
sll a0,a0,0x1
addu v1,v1,a0
lhu v1,0x0(v1)
andi v1,v1,0x8
bne v1,zero,0x00015b20
_addiu v1,a2,-0x30
sb a2,0x0(s4)
lw v1,0x4(v0)
addiu v1,v1,0x1
sw v1,0x4(v0)
b 0x00015b5c
_lw a2,0x24(sp)
li v1,0x1
sw v1,0x24(sp)
b 0x00015b5c
_li a2,0x1
addiu a2,a2,-0x30
sw a2,0x8(v0)
lw v1,0x10(s7)
ext v1,v1,0x18,0x4
slt v1,v1,a2
beq v1,zero,0x00015c80
_nop
lbu v1,0x10(s7)
ins v1,a2,0x0,0x4
sb v1,0x10(s7)
b 0x00015b5c
_lw a2,0x24(sp)
sw zero,0x24(sp)
b 0x00015b5c
_or a2,zero,zero
lw v1,0x24(sp)
b 0x00015b5c
_ori a2,v1,0x8
lw v1,0x24(sp)
b 0x00015b5c
_ori a2,v1,0x4
sb a2,0x0(s4)
lw v1,0x4(v0)
addiu v1,v1,0x1
sw v1,0x4(v0)
b 0x00015b5c
_lw a2,0x24(sp)
li v1,0x2
sw v1,0x24(sp)
b 0x00015b5c
_li a2,0x2
b 0x00015b5c
_lw a2,0x24(sp)
bne v0,zero,0x00015d14
_subu a1,s5,a0
sw zero,0x10(s6)
lw v0,0x70(sp)
sw v0,0x4(s7)
lw a0,0x2c(sp)
lw t9,-0x7fac(gp)
bal 0x0001f114
_nop
lw gp,0x18(sp)
lw s3,0x10(s2)
lbu v0,0x10(s3)
ins v0,zero,0x7,0x1
ins v0,zero,0x5,0x2
ins v0,zero,0x4,0x1
sb v0,0x10(s3)
sw zero,0x8(s3)
sw zero,0xc(s3)
or s5,zero,zero
lw s4,-0x7fcc(gp)
addiu s4,s4,0x3234
or t9,s4,zero
bal 0x00013234
_nop
lw gp,0x18(sp)
addiu v1,v0,0x1
sltiu a0,v1,0x7f
beq a0,zero,0x00016044
_sll v1,v1,0x2
lw a0,0x44(sp)
addu v1,a0,v1
lw v1,0x0(v1)
addu v1,v1,gp
jr v1
_nop
lw t9,-0x7fcc(gp)
addiu t9,t9,0x2f80
bal 0x00012f80
_nop
lw gp,0x18(sp)
sw v0,0x10(s6)
b 0x00015c90
_or s6,v0,zero
b 0x00015c90
_addiu s6,sp,0x60
lw v0,-0x7f9c(gp)
lw v1,0x0(v0)
li v0,0x2
bne v1,v0,0x00015cdc
_ori s5,s5,0x2
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x17c0
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw v0,-0x7f9c(gp)
lw v1,0x0(v0)
li v0,0x2
bne v1,v0,0x00015cdc
_ori s5,s5,0x4
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x17c0
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw v0,-0x7f9c(gp)
lw v1,0x0(v0)
li v0,0x2
beq v1,v0,0x00015de8
_li v1,0x1
lbu v0,0x10(s3)
ins v0,v1,0x4,0x1
b 0x00015cdc
_sb v0,0x10(s3)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x17c0
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lbu v0,0x10(s3)
andi v0,v0,0x60
bne v0,zero,0x00015e4c
_li v0,0x1
lw v1,0x10(s3)
ext a0,v1,0x1c,0x1
sllv v0,v0,a0
ext v1,v1,0x1d,0x2
or v0,v0,v1
lbu v1,0x10(s3)
ins v1,v0,0x5,0x2
b 0x00015cdc
_sb v1,0x10(s3)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x17aa
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lb v0,0x10(s3)
bltz v0,0x00015e98
_li v1,0x1
lbu v0,0x10(s3)
ins v0,v1,0x7,0x1
b 0x00015cdc
_sb v0,0x10(s3)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x1786
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
li a2,0x1
lw v0,-0x7f54(gp)
lw a1,0x0(v0)
lw a0,-0x7fd8(gp)
addiu a0,a0,0x2594
lw t9,-0x7fcc(gp)
addiu t9,t9,0x38c0
bal 0x000138c0
_nop
lw gp,0x18(sp)
sw v0,0xc(s3)
lw s3,0x10(s2)
lw a2,0x10(s3)
ext a2,a2,0x18,0x4
addiu a2,a2,0x1
or a1,s5,zero
lw s4,0x30(sp)
or a0,s4,zero
lw t9,-0x7f8c(gp)
bal 0x0001c874
_nop
lw gp,0x18(sp)
sw v0,0x0(s3)
or a0,s4,zero
lw t9,-0x7fac(gp)
bal 0x0001f114
_nop
lw gp,0x18(sp)
lw v0,0x10(s2)
lbu v0,0x10(v0)
andi v0,v0,0x10
beq v0,zero,0x000155e0
_lw v0,-0x7fa4(gp)
lbu v0,0x0(v0)
beq v0,zero,0x000155e0
_li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x160c
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw v1,0x8(s3)
bne v1,zero,0x00015fd8
_or a0,v0,zero
lw t9,0x48(sp)
jalr t9
_nop
lw gp,0x18(sp)
bne v0,zero,0x00015cdc
_sw v0,0x8(s3)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x173b
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x1762
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
or a0,v0,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x30a0
bal 0x000130a0
_nop
lw gp,0x18(sp)
b 0x00015ef8
_lw s3,0x10(s2)
or t9,s1,zero
bal 0x0001315c
_nop
lw gp,0x18(sp)
li v1,0xa
beq v0,v1,0x00015ef4
_nop
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x17c0
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
or t9,s1,zero
bal 0x0001315c
_nop
lw gp,0x18(sp)
or s3,v0,zero
or a1,zero,zero
or a0,v0,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3bec
bal 0x00013bec
_nop
lw gp,0x18(sp)
beq v0,zero,0x000162a4
_sw v0,0x3c(sp)
lw s4,0x3c(sp)
or a0,s4,zero
lw t9,-0x7fb4(gp)
bal 0x0001efc8
_nop
lw gp,0x18(sp)
or s5,v0,zero
or a0,s4,zero
lw t9,-0x7f80(gp)
bal 0x0001efd0
_nop
lw gp,0x18(sp)
or a2,zero,zero
or a1,v0,zero
or a0,s5,zero
lw t9,-0x7f7c(gp)
bal 0x0001451c
_nop
lw gp,0x18(sp)
sw v0,0x20(sp)
or a1,zero,zero
or a0,s3,zero
lw t9,-0x7fcc(gp)
addiu t9,t9,0x3bec
bal 0x00013bec
_nop
lw gp,0x18(sp)
beq v0,zero,0x000162d4
_sw v0,0x40(sp)
lw s3,0x40(sp)
or a0,s3,zero
lw t9,-0x7fb4(gp)
bal 0x0001efc8
_nop
lw gp,0x18(sp)
or s6,v0,zero
or a0,s3,zero
lw t9,-0x7f80(gp)
bal 0x0001efd0
_nop
lw gp,0x18(sp)
or a2,zero,zero
or a1,v0,zero
or a0,s6,zero
lw t9,-0x7f7c(gp)
bal 0x0001451c
_nop
lw gp,0x18(sp)
sw v0,0x34(sp)
lw v0,-0x7f94(gp)
lw v0,0x0(v0)
slti v0,v0,0x2
beq v0,zero,0x00016304
_lw v1,-0x7fd8(gp)
addiu v1,v1,0x259c
lw v0,0x10(v1)
lw v1,0xc(v1)
subu v0,v0,v1
sltiu v0,v0,0x100
bne v0,zero,0x00016568
_li a1,0x100
lw v1,-0x7fd8(gp)
addiu v1,v1,0x259c
lw v0,0xc(v1)
addiu v0,v0,0x100
lw a0,0x8(v1)
beq v0,a0,0x00016588
_lw v1,-0x7fd8(gp)
lw v1,-0x7fd8(gp)
addiu v1,v1,0x259c
lw a1,0x18(v1)
addu v0,v0,a1
nor a1,zero,a1
and v0,v0,a1
sw v0,0xc(v1)
lw a1,0x4(v1)
lw v1,0x10(v1)
subu v0,v0,a1
subu a1,v1,a1
sltu v0,a1,v0
beq v0,zero,0x00016200
_lw v0,-0x7fd8(gp)
lw v0,-0x7fd8(gp)
sw v1,0x25a8(v0)
lw v0,-0x7fd8(gp)
addiu v0,v0,0x259c
lw v1,0xc(v0)
sw v1,0x8(v0)
lw v0,0x20(sp)
lw v1,0x34(sp)
bne v0,v1,0x000165a0
_li a1,0x100
or v0,zero,zero
addu v1,a0,v0
sb v0,0x0(v1)
addiu v0,v0,0x1
bne v0,a1,0x00016224
_addu v1,a0,v0
lw v0,0x34(sp)
beq v0,zero,0x0001625c
_addu a1,s6,v0
addiu s6,s6,0x1
addiu s5,s5,0x1
lbu v0,-0x1(s5)
addu v0,a0,v0
lbu v1,-0x1(s6)
bne a1,s6,0x00016240
_sb v1,0x0(v0)
sw a0,0x10(s2)
lw t9,-0x7fcc(gp)
addiu t9,t9,0x43c4
bal 0x000143c4
_nop
lw gp,0x18(sp)
lw a0,0x3c(sp)
lw t9,-0x7fac(gp)
bal 0x0001f114
_nop
lw gp,0x18(sp)
lw a0,0x40(sp)
lw t9,-0x7fac(gp)
bal 0x0001f114
_nop
lw gp,0x18(sp)
b 0x000155e4
_lw v0,0x8(s0)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x17d9
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x17d9
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
li a1,0x4
lw s3,0x20(sp)
or a0,s3,zero
lw t9,-0x7f74(gp)
bal 0x0002ae00
_nop
lw gp,0x18(sp)
sw zero,0x74(sp)
beq s3,zero,0x000166a0
_sw zero,0x78(sp)
sw v0,0x24(sp)
or s8,v0,zero
sw zero,0x30(sp)
or s7,zero,zero
lw v0,-0x7f94(gp)
sw v0,0x2c(sp)
b 0x000163a0
_addiu s4,sp,0x74
or a3,s4,zero
lw v0,0x20(sp)
subu a2,v0,s7
addu a1,s5,s7
or a0,zero,zero
lw t9,-0x7f84(gp)
bal 0x0002c330
_nop
lw gp,0x18(sp)
addiu v1,v0,-0x1
sltiu v1,v1,-0x3
movz v0,s3,v1
lw v1,0x30(sp)
addiu s3,v1,0x1
sw v0,0x0(s8)
addu s7,s7,v0
lw v0,0x20(sp)
sltu v0,s7,v0
beq v0,zero,0x000163bc
_addiu s8,s8,0x4
sw s3,0x30(sp)
lw v0,0x2c(sp)
lw v0,0x0(v0)
li s3,0x1
bne v0,s3,0x0001634c
_li v0,0x1
b 0x00016380
_lw v1,0x30(sp)
sw zero,0x74(sp)
sw zero,0x78(sp)
sll a0,s3,0x1
li a1,0x4
addiu a0,a0,0x1
lw t9,-0x7f74(gp)
bal 0x0002ae00
_nop
lw gp,0x18(sp)
sw v0,0x4c(sp)
beq s3,zero,0x00016560
_sw v0,0x10(s2)
lw v0,0x34(sp)
beq v0,zero,0x00016410
_lw s7,0x4c(sp)
or s3,zero,zero
sw zero,0x2c(sp)
lw v0,-0x7f94(gp)
sw v0,0x38(sp)
b 0x000164f4
_addiu s8,sp,0x74
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x170e
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
or a3,s8,zero
lw v0,0x34(sp)
subu a2,v0,s3
addu a1,s6,s3
or a0,zero,zero
lw t9,-0x7f84(gp)
bal 0x0002c330
_nop
lw gp,0x18(sp)
or s2,v0,zero
addiu v0,v0,-0x1
sltiu v0,v0,-0x3
movz s2,s4,v0
addiu a0,s2,0x1
lw t9,-0x7f70(gp)
bal 0x0002ada4
_nop
lw gp,0x18(sp)
or s4,v0,zero
lw v0,0x20(sp)
sw s4,0x4(v0)
or a2,s2,zero
addu a1,s6,s3
or a0,s4,zero
lw t9,-0x7c4c(gp)
jalr t9
_nop
lw gp,0x18(sp)
addu s4,s4,s2
sb zero,0x0(s4)
lw v0,0x2c(sp)
addiu v1,v0,0x1
sw v1,0x20(sp)
lw v1,0x30(sp)
beq v1,v0,0x000166cc
_addu s3,s3,s2
lw v0,0x24(sp)
addiu v0,v0,0x4
sw v0,0x24(sp)
lw v0,0x34(sp)
sltu v0,s3,v0
beq v0,zero,0x00016410
_addiu s7,s7,0x8
lw v0,0x20(sp)
sw v0,0x2c(sp)
lw v0,0x24(sp)
lw s4,0x0(v0)
addiu a0,s4,0x1
lw t9,-0x7f70(gp)
bal 0x0002ada4
_nop
lw gp,0x18(sp)
or s2,v0,zero
sw s7,0x20(sp)
sw v0,0x0(s7)
or a2,s4,zero
or a1,s5,zero
or a0,v0,zero
lw t9,-0x7c4c(gp)
jalr t9
_nop
lw gp,0x18(sp)
addu s2,s2,s4
sb zero,0x0(s2)
addu s5,s5,s4
lw v0,0x38(sp)
lw v0,0x0(v0)
li s4,0x1
bne v0,s4,0x00016440
_li s2,0x1
b 0x00016478
_addiu a0,s2,0x1
b 0x000166cc
_sw s3,0x20(sp)
lw a0,-0x7fd8(gp)
addiu a0,a0,0x259c
lw t9,-0x7fc4(gp)
bal 0x0002c7fc
_nop
lw gp,0x18(sp)
b 0x000161a4
_lw v1,-0x7fd8(gp)
addiu v1,v1,0x259c
lbu a1,0x28(v1)
li a2,0x1
ins a1,a2,0x6,0x1
b 0x000161bc
_sb a1,0x28(v1)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x170e
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x183b
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw t9,-0x7fcc(gp)
addiu t9,t9,0x4470
bal 0x00014470
_nop
lw v1,0x0(v0)
li v0,0x2
beq v1,v0,0x00016664
_lw v0,-0x7fd8(gp)
or v0,s0,zero
lw a0,0x7c(sp)
lw v1,-0x7c50(gp)
lw v1,0x0(v1)
bne a0,v1,0x00016750
_lw ra,0xa4(sp)
lw s8,0xa0(sp)
lw s7,0x9c(sp)
lw s6,0x98(sp)
lw s5,0x94(sp)
lw s4,0x90(sp)
lw s3,0x8c(sp)
lw s2,0x88(sp)
lw s1,0x84(sp)
lw s0,0x80(sp)
jr ra
_addiu sp,sp,0xa8
lw v0,0x25d0(v0)
beq v0,zero,0x00016624
_or v0,s0,zero
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x1659
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
sw zero,0x74(sp)
sw zero,0x78(sp)
li a1,0x4
li a0,0x1
lw t9,-0x7f74(gp)
bal 0x0002ae00
_nop
lw gp,0x18(sp)
sw v0,0x4c(sp)
sw v0,0x10(s2)
lw s3,0x20(sp)
lw v0,0x20(sp)
sll v0,v0,0x3
lw v1,0x4c(sp)
addu v0,v1,v0
sw zero,0x0(v0)
lw v0,0x34(sp)
beq v0,s3,0x00016264
_lw t9,-0x7fcc(gp)
li a2,0x5
lw a1,-0x7fc8(gp)
addiu a1,a1,-0x170e
or a0,zero,zero
lw t9,-0x7c68(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a0,v0,zero
lw t9,-0x7fa0(gp)
bal 0x00013680
_nop
lw v0,-0x7fd8(gp)
lw a0,0x25f4(v0)
beq a0,zero,0x0001508c
_li s2,-0x1
lw t9,-0x7d1c(gp)
jalr t9
_nop
lw gp,0x18(sp)
li v1,0x2
bne v0,v1,0x00015090
_li s3,0xa
b 0x00015130
_lw v0,-0x7f60(gp)
lw t9,-0x7c70(gp)
jalr t9
_nop
(translation_unit "int * FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 uVar6;\n  undefined *puVar7;\n  int local_58 [11];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000424f0;\n  if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }\n  iVar5 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }\n  do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);\n  piVar2 = (int *)PTR_posixicity_000421a4;\n  if (iVar1 == -1) goto LAB_00016610;\n  iVar5 = param_1[1] + 0x28;\n  if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }\n  piVar2 = (int *)(*param_1 + param_1[2] * 0x18);\n  *piVar2 = 0;\n  piVar2[1] = 0;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  *(undefined1 *)((int)piVar2 + 0xd) = 0;\n  iVar5 = iVar1;\n  iVar3 = FUN_0001406c(local_58);\n  if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }\n  *(undefined1 *)((int)piVar2 + 0xd) = uVar6;\n  if (iVar1 + 1U < 0x7f) {\n                    /* WARNING: Could not emulate address calculation at 0x00015744 */\n                    /* WARNING: Treating indirect jump as call */\n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }\n  piVar2 = (int *)FUN_00014470();\nLAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(uVar4);\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }\n  puVar7 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar3 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar3 + 0x25f4) = 0;\n  *(int *)(iVar3 + 0x25e8) = iVar5;\n  *(int *)(iVar3 + 0x25ec) = iVar5;\n  *(int *)(iVar3 + 0x25f0) = iVar5 + param_3;\n  iVar5 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar5 + 0x25e0) = 0;\n  *(undefined4 *)(iVar5 + 0x25dc) = 0;\n  iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;\n  *(int *)(iVar5 + 0x25e4) = iVar1;\n  piVar2 = (int *)FUN_00014ce0();\n  *(undefined4 *)(iVar3 + 0x25e8) = 0;\n  *(undefined4 *)(iVar3 + 0x25ec) = 0;\n  *(undefined4 *)(iVar3 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;\n  return piVar2;\n}\n\n" (function_definition "int * FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 uVar6;\n  undefined *puVar7;\n  int local_58 [11];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000424f0;\n  if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }\n  iVar5 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }\n  do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);\n  piVar2 = (int *)PTR_posixicity_000421a4;\n  if (iVar1 == -1) goto LAB_00016610;\n  iVar5 = param_1[1] + 0x28;\n  if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }\n  piVar2 = (int *)(*param_1 + param_1[2] * 0x18);\n  *piVar2 = 0;\n  piVar2[1] = 0;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  *(undefined1 *)((int)piVar2 + 0xd) = 0;\n  iVar5 = iVar1;\n  iVar3 = FUN_0001406c(local_58);\n  if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }\n  *(undefined1 *)((int)piVar2 + 0xd) = uVar6;\n  if (iVar1 + 1U < 0x7f) {\n                    /* WARNING: Could not emulate address calculation at 0x00015744 */\n                    /* WARNING: Treating indirect jump as call */\n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }\n  piVar2 = (int *)FUN_00014470();\nLAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(uVar4);\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }\n  puVar7 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar3 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar3 + 0x25f4) = 0;\n  *(int *)(iVar3 + 0x25e8) = iVar5;\n  *(int *)(iVar3 + 0x25ec) = iVar5;\n  *(int *)(iVar3 + 0x25f0) = iVar5 + param_3;\n  iVar5 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar5 + 0x25e0) = 0;\n  *(undefined4 *)(iVar5 + 0x25dc) = 0;\n  iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;\n  *(int *)(iVar5 + 0x25e4) = iVar1;\n  piVar2 = (int *)FUN_00014ce0();\n  *(undefined4 *)(iVar3 + 0x25e8) = 0;\n  *(undefined4 *)(iVar3 + 0x25ec) = 0;\n  *(undefined4 *)(iVar3 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;\n  return piVar2;\n}" primitive_type (pointer_declarator "* FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)" * (function_declarator "FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)" identifier (parameter_list "(int *param_1,undefined4 param_2,int param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) )))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 uVar6;\n  undefined *puVar7;\n  int local_58 [11];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000424f0;\n  if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }\n  iVar5 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }\n  do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);\n  piVar2 = (int *)PTR_posixicity_000421a4;\n  if (iVar1 == -1) goto LAB_00016610;\n  iVar5 = param_1[1] + 0x28;\n  if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }\n  piVar2 = (int *)(*param_1 + param_1[2] * 0x18);\n  *piVar2 = 0;\n  piVar2[1] = 0;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  *(undefined1 *)((int)piVar2 + 0xd) = 0;\n  iVar5 = iVar1;\n  iVar3 = FUN_0001406c(local_58);\n  if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }\n  *(undefined1 *)((int)piVar2 + 0xd) = uVar6;\n  if (iVar1 + 1U < 0x7f) {\n                    /* WARNING: Could not emulate address calculation at 0x00015744 */\n                    /* WARNING: Treating indirect jump as call */\n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }\n  piVar2 = (int *)FUN_00014470();\nLAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(uVar4);\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }\n  puVar7 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar3 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar3 + 0x25f4) = 0;\n  *(int *)(iVar3 + 0x25e8) = iVar5;\n  *(int *)(iVar3 + 0x25ec) = iVar5;\n  *(int *)(iVar3 + 0x25f0) = iVar5 + param_3;\n  iVar5 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar5 + 0x25e0) = 0;\n  *(undefined4 *)(iVar5 + 0x25dc) = 0;\n  iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;\n  *(int *)(iVar5 + 0x25e4) = iVar1;\n  piVar2 = (int *)FUN_00014ce0();\n  *(undefined4 *)(iVar3 + 0x25e8) = 0;\n  *(undefined4 *)(iVar3 + 0x25ec) = 0;\n  *(undefined4 *)(iVar3 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;\n  return piVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int local_58 [11];" primitive_type (array_declarator "local_58 [11]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000424f0;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000424f0" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" * (cast_expression "(int *)PTR___stack_chk_guard_000424f0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }" { (expression_statement "param_1 = (int *)xcalloc(1,0xc);" (assignment_expression "param_1 = (int *)xcalloc(1,0xc)" identifier = (cast_expression "(int *)xcalloc(1,0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(1,0xc)" identifier (argument_list "(1,0xc)" ( number_literal , number_literal ))))) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (expression_statement "_obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);" (call_expression "_obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc)" identifier (argument_list "(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc)" ( (binary_expression "PTR_DAT_00042168 + 0x259c" identifier + number_literal) , number_literal , number_literal , identifier , identifier ))) ;) })) (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" identifier = number_literal) ;) (if_statement "if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" ( (binary_expression "*(int *)(PTR_DAT_00042168 + 0x25d0) != 0" (pointer_expression "*(int *)(PTR_DAT_00042168 + 0x25d0)" * (cast_expression "(int *)(PTR_DAT_00042168 + 0x25d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00042168 + 0x25d0)" ( (binary_expression "PTR_DAT_00042168 + 0x25d0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_00014a5c(0);\n  }" { (expression_statement "FUN_00014a5c(0);" (call_expression "FUN_00014a5c(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) (do_statement "do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);" do (compound_statement "{\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  }" { (do_statement "do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);" do (compound_statement "{\n      iVar1 = FUN_0001315c();\n    }" { (expression_statement "iVar1 = FUN_0001315c();" (assignment_expression "iVar1 = FUN_0001315c()" identifier = (call_expression "FUN_0001315c()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar1 == 0x3b)" ( (binary_expression "iVar1 == 0x3b" identifier == number_literal) )) ;) (expression_statement "piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_00042374)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_00042374)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_00042374)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_00042374" * (cast_expression "(code *)PTR___ctype_b_loc_00042374" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*piVar2 + iVar1 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar2 + iVar1 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar2 + iVar1 * 2)" * (cast_expression "(ushort *)(*piVar2 + iVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar2 + iVar1 * 2)" ( (binary_expression "*piVar2 + iVar1 * 2" (pointer_expression "*piVar2" * identifier) + (binary_expression "iVar1 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) ;) (expression_statement "piVar2 = (int *)PTR_posixicity_000421a4;" (assignment_expression "piVar2 = (int *)PTR_posixicity_000421a4" identifier = (cast_expression "(int *)PTR_posixicity_000421a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar1 == -1) goto LAB_00016610;" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00016610;" goto statement_identifier ;)) (expression_statement "iVar5 = param_1[1] + 0x28;" (assignment_expression "iVar5 = param_1[1] + 0x28" identifier = (binary_expression "param_1[1] + 0x28" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }" if (parenthesized_expression "(param_1[2] == param_1[1])" ( (binary_expression "param_1[2] == param_1[1]" (subscript_expression "param_1[2]" identifier [ number_literal ]) == (subscript_expression "param_1[1]" identifier [ number_literal ])) )) (compound_statement "{\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }" { (expression_statement "param_1[1] = iVar5;" (assignment_expression "param_1[1] = iVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3 = 1;" (assignment_expression "param_3 = 1" identifier = number_literal) ;) (if_statement "if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die(*param_1);\n    }" if (parenthesized_expression "(iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f))" ( (binary_expression "iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)" (binary_expression "iVar5 * 0x18 < 0" (binary_expression "iVar5 * 0x18" identifier * number_literal) < number_literal) || (parenthesized_expression "((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)" ( (binary_expression "(uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f" (binary_expression "(uint)(iVar5 * 3) >> 0x1d != 0" (binary_expression "(uint)(iVar5 * 3) >> 0x1d" (call_expression "(uint)(iVar5 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 * 3)" ( (binary_expression "iVar5 * 3" identifier * number_literal) ))) >> number_literal) != number_literal) || (binary_expression "(uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f" (call_expression "(uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)(iVar5 * 3) < (uint)(iVar5 * 2))" ( (binary_expression "(uint)(iVar5 * 3) < (uint)(iVar5 * 2)" (call_expression "(uint)(iVar5 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 * 3)" ( (binary_expression "iVar5 * 3" identifier * number_literal) ))) < (call_expression "(uint)(iVar5 * 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 * 2)" ( (binary_expression "iVar5 * 2" identifier * number_literal) )))) ))) != (binary_expression "iVar5 >> 0x1f" identifier >> number_literal))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      xalloc_die(*param_1);\n    }" { comment (expression_statement "xalloc_die(*param_1);" (call_expression "xalloc_die(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) })) (expression_statement "iVar5 = xrealloc(*param_1,iVar5 * 0x18);" (assignment_expression "iVar5 = xrealloc(*param_1,iVar5 * 0x18)" identifier = (call_expression "xrealloc(*param_1,iVar5 * 0x18)" identifier (argument_list "(*param_1,iVar5 * 0x18)" ( (pointer_expression "*param_1" * identifier) , (binary_expression "iVar5 * 0x18" identifier * number_literal) )))) ;) (expression_statement "*param_1 = iVar5;" (assignment_expression "*param_1 = iVar5" (pointer_expression "*param_1" * identifier) = identifier) ;) })) (expression_statement "piVar2 = (int *)(*param_1 + param_1[2] * 0x18);" (assignment_expression "piVar2 = (int *)(*param_1 + param_1[2] * 0x18)" identifier = (cast_expression "(int *)(*param_1 + param_1[2] * 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + param_1[2] * 0x18)" ( (binary_expression "*param_1 + param_1[2] * 0x18" (pointer_expression "*param_1" * identifier) + (binary_expression "param_1[2] * 0x18" (subscript_expression "param_1[2]" identifier [ number_literal ]) * number_literal)) )))) ;) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" * identifier) = number_literal) ;) (expression_statement "piVar2[1] = 0;" (assignment_expression "piVar2[1] = 0" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[2] = 0;" (assignment_expression "piVar2[2] = 0" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar2 + 3) = 0;" (assignment_expression "*(undefined1 *)(piVar2 + 3) = 0" (pointer_expression "*(undefined1 *)(piVar2 + 3)" * (cast_expression "(undefined1 *)(piVar2 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 3)" ( (binary_expression "piVar2 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)piVar2 + 0xd) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0xd) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0xd)" * (cast_expression "(undefined1 *)((int)piVar2 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0xd)" ( (binary_expression "(int)piVar2 + 0xd" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = iVar1;" (assignment_expression "iVar5 = iVar1" identifier = identifier) ;) (expression_statement "iVar3 = FUN_0001406c(local_58);" (assignment_expression "iVar3 = FUN_0001406c(local_58)" identifier = (call_expression "FUN_0001406c(local_58)" identifier (argument_list "(local_58)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }" { (labeled_statement "LAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n    }" statement_identifier : (if_statement "if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n    }" if (parenthesized_expression "(iVar1 == 0x21)" ( (binary_expression "iVar1 == 0x21" identifier == number_literal) )) (compound_statement "{\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n    }" { (labeled_statement "LAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;" statement_identifier : (expression_statement "*(undefined1 *)(piVar2 + 3) = 1;" (assignment_expression "*(undefined1 *)(piVar2 + 3) = 1" (pointer_expression "*(undefined1 *)(piVar2 + 3)" * (cast_expression "(undefined1 *)(piVar2 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 3)" ( (binary_expression "piVar2 + 3" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "iVar1 = FUN_00013234();" (assignment_expression "iVar1 = FUN_00013234()" identifier = (call_expression "FUN_00013234()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }" if (parenthesized_expression "(iVar1 == 0x21)" ( (binary_expression "iVar1 == 0x21" identifier == number_literal) )) (compound_statement "{\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1940,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1940" identifier + number_literal) , number_literal )))) ;) comment (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) }))) (if_statement "if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }" if (parenthesized_expression "((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e))" ( (binary_expression "(*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)" (parenthesized_expression "(*(int *)PTR_posixicity_000421a4 == 2)" ( (binary_expression "*(int *)PTR_posixicity_000421a4 == 2" (pointer_expression "*(int *)PTR_posixicity_000421a4" * (cast_expression "(int *)PTR_posixicity_000421a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) && (parenthesized_expression "(iVar1 - 0x3dU < 0x3e)" ( (binary_expression "iVar1 - 0x3dU < 0x3e" (binary_expression "iVar1 - 0x3dU" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }" { comment comment (expression_statement "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();" (assignment_expression "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))()" identifier = (cast_expression "(int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  ))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  ))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  ))" ( (binary_expression "&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" * (cast_expression "(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" ( (binary_expression "PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48" (binary_expression "PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4" identifier + (binary_expression "(iVar1 - 0x3dU) * 4" (parenthesized_expression "(iVar1 - 0x3dU)" ( (binary_expression "iVar1 - 0x3dU" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar2;" return identifier ;) })) (expression_statement "uVar6 = (undefined1)iVar1;" (assignment_expression "uVar6 = (undefined1)iVar1" identifier = (cast_expression "(undefined1)iVar1" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }" else (compound_statement "{\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }" { (expression_statement "iVar5 = 0x10;" (assignment_expression "iVar5 = 0x10" identifier = number_literal) ;) (if_statement "if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }" if (parenthesized_expression "(local_58[0] - 4U < 2)" ( (binary_expression "local_58[0] - 4U < 2" (binary_expression "local_58[0] - 4U" (subscript_expression "local_58[0]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1923,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1923" identifier + number_literal) , number_literal )))) ;) comment (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "iVar1 = xmemdup(local_58);" (assignment_expression "iVar1 = xmemdup(local_58)" identifier = (call_expression "xmemdup(local_58)" identifier (argument_list "(local_58)" ( identifier )))) ;) (expression_statement "*piVar2 = iVar1;" (assignment_expression "*piVar2 = iVar1" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "iVar1 = FUN_00013234();" (assignment_expression "iVar1 = FUN_00013234()" identifier = (call_expression "FUN_00013234()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }" if (parenthesized_expression "(iVar1 == 0x2c)" ( (binary_expression "iVar1 == 0x2c" identifier == number_literal) )) (compound_statement "{\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }" { (expression_statement "uVar4 = FUN_00013234();" (assignment_expression "uVar4 = FUN_00013234()" identifier = (call_expression "FUN_00013234()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = FUN_0001406c(local_58,uVar4);" (assignment_expression "iVar1 = FUN_0001406c(local_58,uVar4)" identifier = (call_expression "FUN_0001406c(local_58,uVar4)" identifier (argument_list "(local_58,uVar4)" ( identifier , identifier )))) ;) (expression_statement "iVar5 = 0x10;" (assignment_expression "iVar5 = 0x10" identifier = number_literal) ;) (if_statement "if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(uVar4);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1932,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1932" identifier + number_literal) , number_literal )))) ;) comment (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "iVar1 = xmemdup(local_58);" (assignment_expression "iVar1 = xmemdup(local_58)" identifier = (call_expression "xmemdup(local_58)" identifier (argument_list "(local_58)" ( identifier )))) ;) (expression_statement "piVar2[1] = iVar1;" (assignment_expression "piVar2[1] = iVar1" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar1 = FUN_00013234();" (assignment_expression "iVar1 = FUN_00013234()" identifier = (call_expression "FUN_00013234()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;" if (parenthesized_expression "((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0))" ( (binary_expression "(*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)" (parenthesized_expression "(*(int *)*piVar2 != 2)" ( (binary_expression "*(int *)*piVar2 != 2" (pointer_expression "*(int *)*piVar2" * (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) != number_literal) )) || (parenthesized_expression "(((int *)*piVar2)[1] != 0)" ( (binary_expression "((int *)*piVar2)[1] != 0" (subscript_expression "((int *)*piVar2)[1]" (parenthesized_expression "((int *)*piVar2)" ( (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier)) )) [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_0001570c;" goto statement_identifier ;)) (expression_statement "param_3 = 5;" (assignment_expression "param_3 = 5" identifier = number_literal) ;) (if_statement "if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }" if (parenthesized_expression "((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2))" ( (binary_expression "(((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)" (parenthesized_expression "(((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1))" ( (binary_expression "((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)" (parenthesized_expression "((int *)piVar2[1] == (int *)0x0)" ( (binary_expression "(int *)piVar2[1] == (int *)0x0" (cast_expression "(int *)piVar2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[1]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(int *)piVar2[1] != 1)" ( (binary_expression "*(int *)piVar2[1] != 1" (pointer_expression "*(int *)piVar2[1]" * (cast_expression "(int *)piVar2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[1]" identifier [ number_literal ]))) != number_literal) ))) )) || (parenthesized_expression "(*(int *)PTR_posixicity_000421a4 == 2)" ( (binary_expression "*(int *)PTR_posixicity_000421a4 == 2" (pointer_expression "*(int *)PTR_posixicity_000421a4" * (cast_expression "(int *)PTR_posixicity_000421a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) ))) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(uVar4);\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x168f)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x168f" identifier + number_literal) )))) ;) comment (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "uVar6 = (undefined1)iVar1;" (assignment_expression "uVar6 = (undefined1)iVar1" identifier = (cast_expression "(undefined1)iVar1" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (iVar1 == 0x21) goto LAB_00014f54;" if (parenthesized_expression "(iVar1 == 0x21)" ( (binary_expression "iVar1 == 0x21" identifier == number_literal) )) (goto_statement "goto LAB_00014f54;" goto statement_identifier ;)) }))) (expression_statement "*(undefined1 *)((int)piVar2 + 0xd) = uVar6;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0xd) = uVar6" (pointer_expression "*(undefined1 *)((int)piVar2 + 0xd)" * (cast_expression "(undefined1 *)((int)piVar2 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0xd)" ( (binary_expression "(int)piVar2 + 0xd" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar1 + 1U < 0x7f) {\n                    /* WARNING: Could not emulate address calculation at 0x00015744 */\n                    /* WARNING: Treating indirect jump as call */\n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }" if (parenthesized_expression "(iVar1 + 1U < 0x7f)" ( (binary_expression "iVar1 + 1U < 0x7f" (binary_expression "iVar1 + 1U" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00015744 */\n                    /* WARNING: Treating indirect jump as call */\n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }" { comment comment (expression_statement "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;" (assignment_expression "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()" identifier = (cast_expression "(int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50))" ( (binary_expression "&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" * (cast_expression "(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" ( (binary_expression "PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50" (binary_expression "PTR_UINT_00042178 + (iVar1 + 1U) * 4" identifier + (binary_expression "(iVar1 + 1U) * 4" (parenthesized_expression "(iVar1 + 1U)" ( (binary_expression "iVar1 + 1U" identifier + number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar2;" return identifier ;) })) (expression_statement "piVar2 = (int *)FUN_00014470();" (assignment_expression "piVar2 = (int *)FUN_00014470()" identifier = (cast_expression "(int *)FUN_00014470()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014470()" identifier (argument_list "()" ( ))))) ;) (labeled_statement "LAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(uVar4);\n  }" statement_identifier : (if_statement "if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(uVar4);\n  }" if (parenthesized_expression "((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0))" ( (binary_expression "(*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" (parenthesized_expression "(*piVar2 == 2)" ( (binary_expression "*piVar2 == 2" (pointer_expression "*piVar2" * identifier) == number_literal) )) && (parenthesized_expression "(*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" ( (binary_expression "*(int *)(PTR_DAT_00042168 + 0x25d0) != 0" (pointer_expression "*(int *)(PTR_DAT_00042168 + 0x25d0)" * (cast_expression "(int *)(PTR_DAT_00042168 + 0x25d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00042168 + 0x25d0)" ( (binary_expression "PTR_DAT_00042168 + 0x25d0" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(uVar4);\n  }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1659,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1659" identifier + number_literal) , number_literal )))) ;) comment (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) }))) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_000424f0)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_000424f0" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" * (cast_expression "(int *)PTR___stack_chk_guard_000424f0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return param_1;\n  }" { (return_statement "return param_1;" return identifier ;) })) (expression_statement "puVar7 = PTR___stack_chk_fail_000424d0;" (assignment_expression "puVar7 = PTR___stack_chk_fail_000424d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000424d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000424d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000424d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000424d0" * (cast_expression "(code *)PTR___stack_chk_fail_000424d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *(int *)(puVar7 + 0x2ba0c);" (assignment_expression "iVar3 = *(int *)(puVar7 + 0x2ba0c)" identifier = (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" * (cast_expression "(int *)(puVar7 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2ba0c)" ( (binary_expression "puVar7 + 0x2ba0c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x25f4) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25f4) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25f4)" * (cast_expression "(undefined4 *)(iVar3 + 0x25f4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25f4)" ( (binary_expression "iVar3 + 0x25f4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar3 + 0x25e8) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x25e8) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x25e8)" * (cast_expression "(int *)(iVar3 + 0x25e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25e8)" ( (binary_expression "iVar3 + 0x25e8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar3 + 0x25ec) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x25ec) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x25ec)" * (cast_expression "(int *)(iVar3 + 0x25ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25ec)" ( (binary_expression "iVar3 + 0x25ec" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar3 + 0x25f0) = iVar5 + param_3;" (assignment_expression "*(int *)(iVar3 + 0x25f0) = iVar5 + param_3" (pointer_expression "*(int *)(iVar3 + 0x25f0)" * (cast_expression "(int *)(iVar3 + 0x25f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25f0)" ( (binary_expression "iVar3 + 0x25f0" identifier + number_literal) )))) = (binary_expression "iVar5 + param_3" identifier + identifier)) ;) (expression_statement "iVar5 = *(int *)(puVar7 + 0x2ba0c);" (assignment_expression "iVar5 = *(int *)(puVar7 + 0x2ba0c)" identifier = (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" * (cast_expression "(int *)(puVar7 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2ba0c)" ( (binary_expression "puVar7 + 0x2ba0c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x25e0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x25e0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x25e0)" * (cast_expression "(undefined4 *)(iVar5 + 0x25e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x25e0)" ( (binary_expression "iVar5 + 0x25e0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x25dc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x25dc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x25dc)" * (cast_expression "(undefined4 *)(iVar5 + 0x25dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x25dc)" ( (binary_expression "iVar5 + 0x25dc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;" (assignment_expression "iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1" identifier = (binary_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1" (pointer_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" * (cast_expression "(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" ( (binary_expression "*(int *)(puVar7 + 0x2ba0c) + 0x2590" (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" * (cast_expression "(int *)(puVar7 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2ba0c)" ( (binary_expression "puVar7 + 0x2ba0c" identifier + number_literal) )))) + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;" (assignment_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1" (pointer_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" * (cast_expression "(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" ( (binary_expression "*(int *)(puVar7 + 0x2ba0c) + 0x2590" (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" * (cast_expression "(int *)(puVar7 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2ba0c)" ( (binary_expression "puVar7 + 0x2ba0c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar5 + 0x25e4) = iVar1;" (assignment_expression "*(int *)(iVar5 + 0x25e4) = iVar1" (pointer_expression "*(int *)(iVar5 + 0x25e4)" * (cast_expression "(int *)(iVar5 + 0x25e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x25e4)" ( (binary_expression "iVar5 + 0x25e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar2 = (int *)FUN_00014ce0();" (assignment_expression "piVar2 = (int *)FUN_00014ce0()" identifier = (cast_expression "(int *)FUN_00014ce0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014ce0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x25e8) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25e8) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25e8)" * (cast_expression "(undefined4 *)(iVar3 + 0x25e8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25e8)" ( (binary_expression "iVar3 + 0x25e8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x25ec) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25ec) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25ec)" * (cast_expression "(undefined4 *)(iVar3 + 0x25ec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25ec)" ( (binary_expression "iVar3 + 0x25ec" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x25f0) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25f0) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25f0)" * (cast_expression "(undefined4 *)(iVar3 + 0x25f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25f0)" ( (binary_expression "iVar3 + 0x25f0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;" (assignment_expression "*(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0" (pointer_expression "*(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010)" * (cast_expression "(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar7 + 0x2ba0c) + 0x2010)" ( (binary_expression "*(int *)(puVar7 + 0x2ba0c) + 0x2010" (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" * (cast_expression "(int *)(puVar7 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2ba0c)" ( (binary_expression "puVar7 + 0x2ba0c" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (return_statement "return piVar2;" return identifier ;) })))
(translation_unit "vector * compile_program(vector *vector)\n\n{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  vector *pvVar1;\n  sed_cmd *psVar2;\n  int iVar3;\n  int *piVar4;\n  _Bool _Var7;\n  addr *paVar5;\n  char *pcVar6;\n  int iVar8;\n  size_t sVar9;\n  int in_a2;\n  int iVar10;\n  char ch;\n  undefined *puVar11;\n  addr a;\n  replacement root;\n  mbstate_t cur_stat;\n  \n  pvVar1 = *(vector **)PTR___stack_chk_guard_000424f0;\n  if (vector == (vector *)0x0) {\n    vector = (vector *)xcalloc(1,0xc);\n    vector->v = (sed_cmd *)0x0;\n    vector->v_allocated = 0;\n    vector->v_length = 0;\n    in_a2 = 0;\n    _obstack_begin((obstack *)(PTR_DAT_00042168 + 0x259c),0,0,\n                   (_func_void_ptr_size_t *)PTR_xzalloc_000421d0,\n                   (_func_void_void_ptr *)PTR_free_000424fc);\n  }\n  iVar8 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    read_text((text_buf *)0x0,10);\n  }\n  do {\n    do {\n      iVar3 = inchar();\n    } while (iVar3 == 0x3b);\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar4 + iVar3 * 2) & 0x20) != 0);\n  piVar4 = (int *)PTR_posixicity_000421a4;\n  if (iVar3 == -1) goto LAB_00016610;\n  sVar9 = vector->v_allocated + 0x28;\n  if (vector->v_length == vector->v_allocated) {\n    vector->v_allocated = sVar9;\n    in_a2 = 1;\n    if ((int)(sVar9 * 0x18) < 0 ||\n        (sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n    psVar2 = (sed_cmd *)xrealloc(vector->v,sVar9 * 0x18);\n    vector->v = psVar2;\n  }\n  psVar2 = vector->v + vector->v_length;\n  psVar2->a1 = (addr *)0x0;\n  psVar2->a2 = (addr *)0x0;\n  psVar2->range_state = RANGE_INACTIVE;\n  psVar2->addr_bang = '\0';\n  psVar2->cmd = '\0';\n  iVar8 = iVar3;\n  _Var7 = compile_address(&a,iVar3);\n  if (CONCAT31(extraout_var_00,_Var7) == 0) {\nLAB_0001570c:\n    if (iVar3 == 0x21) {\nLAB_00014f54:\n      psVar2->addr_bang = '\x01';\n      iVar3 = in_nonblank();\n      if (iVar3 == 0x21) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar3 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      pvVar1 = (vector *)\n               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))();\n      return pvVar1;\n    }\n    ch = (char)iVar3;\n  }\n  else {\n    iVar8 = 0x10;\n    if (a.addr_type - ADDR_IS_STEP < 2) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    paVar5 = (addr *)xmemdup(&a,0x10);\n    psVar2->a1 = paVar5;\n    iVar3 = in_nonblank();\n    if (iVar3 == 0x2c) {\n      iVar8 = in_nonblank();\n      _Var7 = compile_address(&a,iVar8);\n      iVar8 = 0x10;\n      if (CONCAT31(extraout_var,_Var7) == 0) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n      paVar5 = (addr *)xmemdup(&a,0x10);\n      psVar2->a2 = paVar5;\n      iVar3 = in_nonblank();\n    }\n    if ((psVar2->a1->addr_type != ADDR_IS_NUM) || (psVar2->a1->addr_number != 0)) goto LAB_0001570c;\n    in_a2 = 5;\n    if (((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    ch = (char)iVar3;\n    if (iVar3 == 0x21) goto LAB_00014f54;\n  }\n  piVar4 = (int *)(uint)(iVar3 + 1U < 0x7f);\n  psVar2->cmd = ch;\n  if (piVar4 != (int *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00015750. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pvVar1 = (vector *)\n             (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))();\n    return pvVar1;\n  }\n  bad_command(ch);\nLAB_00016610:\n  if ((*piVar4 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(pcVar6);\n  }\n  if (pvVar1 == *(vector **)PTR___stack_chk_guard_000424f0) {\n    return vector;\n  }\n  puVar11 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar10 = *(int *)(puVar11 + 0x2ba0c);\n  *(undefined4 *)(iVar10 + 0x25f4) = 0;\n  *(int *)(iVar10 + 0x25e8) = iVar8;\n  *(int *)(iVar10 + 0x25ec) = iVar8;\n  *(int *)(iVar10 + 0x25f0) = iVar8 + in_a2;\n  iVar8 = *(int *)(puVar11 + 0x2ba0c);\n  *(undefined4 *)(iVar8 + 0x25e0) = 0;\n  *(undefined4 *)(iVar8 + 0x25dc) = 0;\n  iVar3 = *(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) = iVar3;\n  *(int *)(iVar8 + 0x25e4) = iVar3;\n  pvVar1 = compile_program(pvVar1);\n  *(undefined4 *)(iVar10 + 0x25e8) = 0;\n  *(undefined4 *)(iVar10 + 0x25ec) = 0;\n  *(undefined4 *)(iVar10 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar11 + 0x2ba0c) + 0x2010) = 0;\n  return pvVar1;\n}\n\n" (function_definition "vector * compile_program(vector *vector)\n\n{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  vector *pvVar1;\n  sed_cmd *psVar2;\n  int iVar3;\n  int *piVar4;\n  _Bool _Var7;\n  addr *paVar5;\n  char *pcVar6;\n  int iVar8;\n  size_t sVar9;\n  int in_a2;\n  int iVar10;\n  char ch;\n  undefined *puVar11;\n  addr a;\n  replacement root;\n  mbstate_t cur_stat;\n  \n  pvVar1 = *(vector **)PTR___stack_chk_guard_000424f0;\n  if (vector == (vector *)0x0) {\n    vector = (vector *)xcalloc(1,0xc);\n    vector->v = (sed_cmd *)0x0;\n    vector->v_allocated = 0;\n    vector->v_length = 0;\n    in_a2 = 0;\n    _obstack_begin((obstack *)(PTR_DAT_00042168 + 0x259c),0,0,\n                   (_func_void_ptr_size_t *)PTR_xzalloc_000421d0,\n                   (_func_void_void_ptr *)PTR_free_000424fc);\n  }\n  iVar8 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    read_text((text_buf *)0x0,10);\n  }\n  do {\n    do {\n      iVar3 = inchar();\n    } while (iVar3 == 0x3b);\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar4 + iVar3 * 2) & 0x20) != 0);\n  piVar4 = (int *)PTR_posixicity_000421a4;\n  if (iVar3 == -1) goto LAB_00016610;\n  sVar9 = vector->v_allocated + 0x28;\n  if (vector->v_length == vector->v_allocated) {\n    vector->v_allocated = sVar9;\n    in_a2 = 1;\n    if ((int)(sVar9 * 0x18) < 0 ||\n        (sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n    psVar2 = (sed_cmd *)xrealloc(vector->v,sVar9 * 0x18);\n    vector->v = psVar2;\n  }\n  psVar2 = vector->v + vector->v_length;\n  psVar2->a1 = (addr *)0x0;\n  psVar2->a2 = (addr *)0x0;\n  psVar2->range_state = RANGE_INACTIVE;\n  psVar2->addr_bang = '\0';\n  psVar2->cmd = '\0';\n  iVar8 = iVar3;\n  _Var7 = compile_address(&a,iVar3);\n  if (CONCAT31(extraout_var_00,_Var7) == 0) {\nLAB_0001570c:\n    if (iVar3 == 0x21) {\nLAB_00014f54:\n      psVar2->addr_bang = '\x01';\n      iVar3 = in_nonblank();\n      if (iVar3 == 0x21) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar3 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      pvVar1 = (vector *)\n               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))();\n      return pvVar1;\n    }\n    ch = (char)iVar3;\n  }\n  else {\n    iVar8 = 0x10;\n    if (a.addr_type - ADDR_IS_STEP < 2) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    paVar5 = (addr *)xmemdup(&a,0x10);\n    psVar2->a1 = paVar5;\n    iVar3 = in_nonblank();\n    if (iVar3 == 0x2c) {\n      iVar8 = in_nonblank();\n      _Var7 = compile_address(&a,iVar8);\n      iVar8 = 0x10;\n      if (CONCAT31(extraout_var,_Var7) == 0) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n      paVar5 = (addr *)xmemdup(&a,0x10);\n      psVar2->a2 = paVar5;\n      iVar3 = in_nonblank();\n    }\n    if ((psVar2->a1->addr_type != ADDR_IS_NUM) || (psVar2->a1->addr_number != 0)) goto LAB_0001570c;\n    in_a2 = 5;\n    if (((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    ch = (char)iVar3;\n    if (iVar3 == 0x21) goto LAB_00014f54;\n  }\n  piVar4 = (int *)(uint)(iVar3 + 1U < 0x7f);\n  psVar2->cmd = ch;\n  if (piVar4 != (int *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00015750. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pvVar1 = (vector *)\n             (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))();\n    return pvVar1;\n  }\n  bad_command(ch);\nLAB_00016610:\n  if ((*piVar4 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(pcVar6);\n  }\n  if (pvVar1 == *(vector **)PTR___stack_chk_guard_000424f0) {\n    return vector;\n  }\n  puVar11 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar10 = *(int *)(puVar11 + 0x2ba0c);\n  *(undefined4 *)(iVar10 + 0x25f4) = 0;\n  *(int *)(iVar10 + 0x25e8) = iVar8;\n  *(int *)(iVar10 + 0x25ec) = iVar8;\n  *(int *)(iVar10 + 0x25f0) = iVar8 + in_a2;\n  iVar8 = *(int *)(puVar11 + 0x2ba0c);\n  *(undefined4 *)(iVar8 + 0x25e0) = 0;\n  *(undefined4 *)(iVar8 + 0x25dc) = 0;\n  iVar3 = *(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) = iVar3;\n  *(int *)(iVar8 + 0x25e4) = iVar3;\n  pvVar1 = compile_program(pvVar1);\n  *(undefined4 *)(iVar10 + 0x25e8) = 0;\n  *(undefined4 *)(iVar10 + 0x25ec) = 0;\n  *(undefined4 *)(iVar10 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar11 + 0x2ba0c) + 0x2010) = 0;\n  return pvVar1;\n}" type_identifier (pointer_declarator "* compile_program(vector *vector)" * (function_declarator "compile_program(vector *vector)" identifier (parameter_list "(vector *vector)" ( (parameter_declaration "vector *vector" type_identifier (pointer_declarator "*vector" * identifier)) )))) (compound_statement "{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  vector *pvVar1;\n  sed_cmd *psVar2;\n  int iVar3;\n  int *piVar4;\n  _Bool _Var7;\n  addr *paVar5;\n  char *pcVar6;\n  int iVar8;\n  size_t sVar9;\n  int in_a2;\n  int iVar10;\n  char ch;\n  undefined *puVar11;\n  addr a;\n  replacement root;\n  mbstate_t cur_stat;\n  \n  pvVar1 = *(vector **)PTR___stack_chk_guard_000424f0;\n  if (vector == (vector *)0x0) {\n    vector = (vector *)xcalloc(1,0xc);\n    vector->v = (sed_cmd *)0x0;\n    vector->v_allocated = 0;\n    vector->v_length = 0;\n    in_a2 = 0;\n    _obstack_begin((obstack *)(PTR_DAT_00042168 + 0x259c),0,0,\n                   (_func_void_ptr_size_t *)PTR_xzalloc_000421d0,\n                   (_func_void_void_ptr *)PTR_free_000424fc);\n  }\n  iVar8 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    read_text((text_buf *)0x0,10);\n  }\n  do {\n    do {\n      iVar3 = inchar();\n    } while (iVar3 == 0x3b);\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar4 + iVar3 * 2) & 0x20) != 0);\n  piVar4 = (int *)PTR_posixicity_000421a4;\n  if (iVar3 == -1) goto LAB_00016610;\n  sVar9 = vector->v_allocated + 0x28;\n  if (vector->v_length == vector->v_allocated) {\n    vector->v_allocated = sVar9;\n    in_a2 = 1;\n    if ((int)(sVar9 * 0x18) < 0 ||\n        (sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n    psVar2 = (sed_cmd *)xrealloc(vector->v,sVar9 * 0x18);\n    vector->v = psVar2;\n  }\n  psVar2 = vector->v + vector->v_length;\n  psVar2->a1 = (addr *)0x0;\n  psVar2->a2 = (addr *)0x0;\n  psVar2->range_state = RANGE_INACTIVE;\n  psVar2->addr_bang = '\0';\n  psVar2->cmd = '\0';\n  iVar8 = iVar3;\n  _Var7 = compile_address(&a,iVar3);\n  if (CONCAT31(extraout_var_00,_Var7) == 0) {\nLAB_0001570c:\n    if (iVar3 == 0x21) {\nLAB_00014f54:\n      psVar2->addr_bang = '\x01';\n      iVar3 = in_nonblank();\n      if (iVar3 == 0x21) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar3 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      pvVar1 = (vector *)\n               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))();\n      return pvVar1;\n    }\n    ch = (char)iVar3;\n  }\n  else {\n    iVar8 = 0x10;\n    if (a.addr_type - ADDR_IS_STEP < 2) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    paVar5 = (addr *)xmemdup(&a,0x10);\n    psVar2->a1 = paVar5;\n    iVar3 = in_nonblank();\n    if (iVar3 == 0x2c) {\n      iVar8 = in_nonblank();\n      _Var7 = compile_address(&a,iVar8);\n      iVar8 = 0x10;\n      if (CONCAT31(extraout_var,_Var7) == 0) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n      paVar5 = (addr *)xmemdup(&a,0x10);\n      psVar2->a2 = paVar5;\n      iVar3 = in_nonblank();\n    }\n    if ((psVar2->a1->addr_type != ADDR_IS_NUM) || (psVar2->a1->addr_number != 0)) goto LAB_0001570c;\n    in_a2 = 5;\n    if (((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    ch = (char)iVar3;\n    if (iVar3 == 0x21) goto LAB_00014f54;\n  }\n  piVar4 = (int *)(uint)(iVar3 + 1U < 0x7f);\n  psVar2->cmd = ch;\n  if (piVar4 != (int *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00015750. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pvVar1 = (vector *)\n             (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))();\n    return pvVar1;\n  }\n  bad_command(ch);\nLAB_00016610:\n  if ((*piVar4 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(pcVar6);\n  }\n  if (pvVar1 == *(vector **)PTR___stack_chk_guard_000424f0) {\n    return vector;\n  }\n  puVar11 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar10 = *(int *)(puVar11 + 0x2ba0c);\n  *(undefined4 *)(iVar10 + 0x25f4) = 0;\n  *(int *)(iVar10 + 0x25e8) = iVar8;\n  *(int *)(iVar10 + 0x25ec) = iVar8;\n  *(int *)(iVar10 + 0x25f0) = iVar8 + in_a2;\n  iVar8 = *(int *)(puVar11 + 0x2ba0c);\n  *(undefined4 *)(iVar8 + 0x25e0) = 0;\n  *(undefined4 *)(iVar8 + 0x25dc) = 0;\n  iVar3 = *(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) = iVar3;\n  *(int *)(iVar8 + 0x25e4) = iVar3;\n  pvVar1 = compile_program(pvVar1);\n  *(undefined4 *)(iVar10 + 0x25e8) = 0;\n  *(undefined4 *)(iVar10 + 0x25ec) = 0;\n  *(undefined4 *)(iVar10 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar11 + 0x2ba0c) + 0x2010) = 0;\n  return pvVar1;\n}" { (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "vector *pvVar1;" type_identifier (pointer_declarator "*pvVar1" * identifier) ;) (declaration "sed_cmd *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "_Bool _Var7;" type_identifier identifier ;) (declaration "addr *paVar5;" type_identifier (pointer_declarator "*paVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "int in_a2;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char ch;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "addr a;" type_identifier identifier ;) (declaration "replacement root;" type_identifier identifier ;) (declaration "mbstate_t cur_stat;" type_identifier identifier ;) (expression_statement "pvVar1 = *(vector **)PTR___stack_chk_guard_000424f0;" (assignment_expression "pvVar1 = *(vector **)PTR___stack_chk_guard_000424f0" identifier = (pointer_expression "*(vector **)PTR___stack_chk_guard_000424f0" * (cast_expression "(vector **)PTR___stack_chk_guard_000424f0" ( (type_descriptor "vector **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (vector == (vector *)0x0) {\n    vector = (vector *)xcalloc(1,0xc);\n    vector->v = (sed_cmd *)0x0;\n    vector->v_allocated = 0;\n    vector->v_length = 0;\n    in_a2 = 0;\n    _obstack_begin((obstack *)(PTR_DAT_00042168 + 0x259c),0,0,\n                   (_func_void_ptr_size_t *)PTR_xzalloc_000421d0,\n                   (_func_void_void_ptr *)PTR_free_000424fc);\n  }" if (parenthesized_expression "(vector == (vector *)0x0)" ( (binary_expression "vector == (vector *)0x0" identifier == (cast_expression "(vector *)0x0" ( (type_descriptor "vector *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    vector = (vector *)xcalloc(1,0xc);\n    vector->v = (sed_cmd *)0x0;\n    vector->v_allocated = 0;\n    vector->v_length = 0;\n    in_a2 = 0;\n    _obstack_begin((obstack *)(PTR_DAT_00042168 + 0x259c),0,0,\n                   (_func_void_ptr_size_t *)PTR_xzalloc_000421d0,\n                   (_func_void_void_ptr *)PTR_free_000424fc);\n  }" { (expression_statement "vector = (vector *)xcalloc(1,0xc);" (assignment_expression "vector = (vector *)xcalloc(1,0xc)" identifier = (cast_expression "(vector *)xcalloc(1,0xc)" ( (type_descriptor "vector *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(1,0xc)" identifier (argument_list "(1,0xc)" ( number_literal , number_literal ))))) ;) (expression_statement "vector->v = (sed_cmd *)0x0;" (assignment_expression "vector->v = (sed_cmd *)0x0" (field_expression "vector->v" identifier -> field_identifier) = (cast_expression "(sed_cmd *)0x0" ( (type_descriptor "sed_cmd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "vector->v_allocated = 0;" (assignment_expression "vector->v_allocated = 0" (field_expression "vector->v_allocated" identifier -> field_identifier) = number_literal) ;) (expression_statement "vector->v_length = 0;" (assignment_expression "vector->v_length = 0" (field_expression "vector->v_length" identifier -> field_identifier) = number_literal) ;) (expression_statement "in_a2 = 0;" (assignment_expression "in_a2 = 0" identifier = number_literal) ;) (expression_statement "_obstack_begin((obstack *)(PTR_DAT_00042168 + 0x259c),0,0,\n                   (_func_void_ptr_size_t *)PTR_xzalloc_000421d0,\n                   (_func_void_void_ptr *)PTR_free_000424fc);" (call_expression "_obstack_begin((obstack *)(PTR_DAT_00042168 + 0x259c),0,0,\n                   (_func_void_ptr_size_t *)PTR_xzalloc_000421d0,\n                   (_func_void_void_ptr *)PTR_free_000424fc)" identifier (argument_list "((obstack *)(PTR_DAT_00042168 + 0x259c),0,0,\n                   (_func_void_ptr_size_t *)PTR_xzalloc_000421d0,\n                   (_func_void_void_ptr *)PTR_free_000424fc)" ( (cast_expression "(obstack *)(PTR_DAT_00042168 + 0x259c)" ( (type_descriptor "obstack *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00042168 + 0x259c)" ( (binary_expression "PTR_DAT_00042168 + 0x259c" identifier + number_literal) ))) , number_literal , number_literal , (cast_expression "(_func_void_ptr_size_t *)PTR_xzalloc_000421d0" ( (type_descriptor "_func_void_ptr_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(_func_void_void_ptr *)PTR_free_000424fc" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (expression_statement "iVar8 = 10;" (assignment_expression "iVar8 = 10" identifier = number_literal) ;) (if_statement "if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    read_text((text_buf *)0x0,10);\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" ( (binary_expression "*(int *)(PTR_DAT_00042168 + 0x25d0) != 0" (pointer_expression "*(int *)(PTR_DAT_00042168 + 0x25d0)" * (cast_expression "(int *)(PTR_DAT_00042168 + 0x25d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00042168 + 0x25d0)" ( (binary_expression "PTR_DAT_00042168 + 0x25d0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    read_text((text_buf *)0x0,10);\n  }" { (expression_statement "read_text((text_buf *)0x0,10);" (call_expression "read_text((text_buf *)0x0,10)" identifier (argument_list "((text_buf *)0x0,10)" ( (cast_expression "(text_buf *)0x0" ( (type_descriptor "text_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) })) (do_statement "do {\n    do {\n      iVar3 = inchar();\n    } while (iVar3 == 0x3b);\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar4 + iVar3 * 2) & 0x20) != 0);" do (compound_statement "{\n    do {\n      iVar3 = inchar();\n    } while (iVar3 == 0x3b);\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  }" { (do_statement "do {\n      iVar3 = inchar();\n    } while (iVar3 == 0x3b);" do (compound_statement "{\n      iVar3 = inchar();\n    }" { (expression_statement "iVar3 = inchar();" (assignment_expression "iVar3 = inchar()" identifier = (call_expression "inchar()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar3 == 0x3b)" ( (binary_expression "iVar3 == 0x3b" identifier == number_literal) )) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00042374)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_00042374)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_00042374)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_00042374)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_00042374" * (cast_expression "(code *)PTR___ctype_b_loc_00042374" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "((*(ushort *)(*piVar4 + iVar3 * 2) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(*piVar4 + iVar3 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*piVar4 + iVar3 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar4 + iVar3 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar4 + iVar3 * 2)" * (cast_expression "(ushort *)(*piVar4 + iVar3 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + iVar3 * 2)" ( (binary_expression "*piVar4 + iVar3 * 2" (pointer_expression "*piVar4" * identifier) + (binary_expression "iVar3 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) ;) (expression_statement "piVar4 = (int *)PTR_posixicity_000421a4;" (assignment_expression "piVar4 = (int *)PTR_posixicity_000421a4" identifier = (cast_expression "(int *)PTR_posixicity_000421a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar3 == -1) goto LAB_00016610;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00016610;" goto statement_identifier ;)) (expression_statement "sVar9 = vector->v_allocated + 0x28;" (assignment_expression "sVar9 = vector->v_allocated + 0x28" identifier = (binary_expression "vector->v_allocated + 0x28" (field_expression "vector->v_allocated" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (vector->v_length == vector->v_allocated) {\n    vector->v_allocated = sVar9;\n    in_a2 = 1;\n    if ((int)(sVar9 * 0x18) < 0 ||\n        (sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n    psVar2 = (sed_cmd *)xrealloc(vector->v,sVar9 * 0x18);\n    vector->v = psVar2;\n  }" if (parenthesized_expression "(vector->v_length == vector->v_allocated)" ( (binary_expression "vector->v_length == vector->v_allocated" (field_expression "vector->v_length" identifier -> field_identifier) == (field_expression "vector->v_allocated" identifier -> field_identifier)) )) (compound_statement "{\n    vector->v_allocated = sVar9;\n    in_a2 = 1;\n    if ((int)(sVar9 * 0x18) < 0 ||\n        (sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n    psVar2 = (sed_cmd *)xrealloc(vector->v,sVar9 * 0x18);\n    vector->v = psVar2;\n  }" { (expression_statement "vector->v_allocated = sVar9;" (assignment_expression "vector->v_allocated = sVar9" (field_expression "vector->v_allocated" identifier -> field_identifier) = identifier) ;) (expression_statement "in_a2 = 1;" (assignment_expression "in_a2 = 1" identifier = number_literal) ;) (if_statement "if ((int)(sVar9 * 0x18) < 0 ||\n        (sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }" if (parenthesized_expression "((int)(sVar9 * 0x18) < 0 ||\n        (sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f))" ( (binary_expression "(int)(sVar9 * 0x18) < 0 ||\n        (sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f)" (binary_expression "(int)(sVar9 * 0x18) < 0" (cast_expression "(int)(sVar9 * 0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(sVar9 * 0x18)" ( (binary_expression "sVar9 * 0x18" identifier * number_literal) ))) < number_literal) || (parenthesized_expression "(sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f)" ( (binary_expression "sVar9 * 3 >> 0x1d != 0 || (uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f" (binary_expression "sVar9 * 3 >> 0x1d != 0" (binary_expression "sVar9 * 3 >> 0x1d" (binary_expression "sVar9 * 3" identifier * number_literal) >> number_literal) != number_literal) || (binary_expression "(uint)(sVar9 * 3 < sVar9 * 2) != (int)sVar9 >> 0x1f" (call_expression "(uint)(sVar9 * 3 < sVar9 * 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(sVar9 * 3 < sVar9 * 2)" ( (binary_expression "sVar9 * 3 < sVar9 * 2" (binary_expression "sVar9 * 3" identifier * number_literal) < (binary_expression "sVar9 * 2" identifier * number_literal)) ))) != (binary_expression "(int)sVar9 >> 0x1f" (cast_expression "(int)sVar9" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "psVar2 = (sed_cmd *)xrealloc(vector->v,sVar9 * 0x18);" (assignment_expression "psVar2 = (sed_cmd *)xrealloc(vector->v,sVar9 * 0x18)" identifier = (cast_expression "(sed_cmd *)xrealloc(vector->v,sVar9 * 0x18)" ( (type_descriptor "sed_cmd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(vector->v,sVar9 * 0x18)" identifier (argument_list "(vector->v,sVar9 * 0x18)" ( (field_expression "vector->v" identifier -> field_identifier) , (binary_expression "sVar9 * 0x18" identifier * number_literal) ))))) ;) (expression_statement "vector->v = psVar2;" (assignment_expression "vector->v = psVar2" (field_expression "vector->v" identifier -> field_identifier) = identifier) ;) })) (expression_statement "psVar2 = vector->v + vector->v_length;" (assignment_expression "psVar2 = vector->v + vector->v_length" identifier = (binary_expression "vector->v + vector->v_length" (field_expression "vector->v" identifier -> field_identifier) + (field_expression "vector->v_length" identifier -> field_identifier))) ;) (expression_statement "psVar2->a1 = (addr *)0x0;" (assignment_expression "psVar2->a1 = (addr *)0x0" (field_expression "psVar2->a1" identifier -> field_identifier) = (cast_expression "(addr *)0x0" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar2->a2 = (addr *)0x0;" (assignment_expression "psVar2->a2 = (addr *)0x0" (field_expression "psVar2->a2" identifier -> field_identifier) = (cast_expression "(addr *)0x0" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar2->range_state = RANGE_INACTIVE;" (assignment_expression "psVar2->range_state = RANGE_INACTIVE" (field_expression "psVar2->range_state" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar2->addr_bang = '\0';" (assignment_expression "psVar2->addr_bang = '\0'" (field_expression "psVar2->addr_bang" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "psVar2->cmd = '\0';" (assignment_expression "psVar2->cmd = '\0'" (field_expression "psVar2->cmd" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar8 = iVar3;" (assignment_expression "iVar8 = iVar3" identifier = identifier) ;) (expression_statement "_Var7 = compile_address(&a,iVar3);" (assignment_expression "_Var7 = compile_address(&a,iVar3)" identifier = (call_expression "compile_address(&a,iVar3)" identifier (argument_list "(&a,iVar3)" ( (pointer_expression "&a" & identifier) , identifier )))) ;) (if_statement "if (CONCAT31(extraout_var_00,_Var7) == 0) {\nLAB_0001570c:\n    if (iVar3 == 0x21) {\nLAB_00014f54:\n      psVar2->addr_bang = '\x01';\n      iVar3 = in_nonblank();\n      if (iVar3 == 0x21) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar3 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      pvVar1 = (vector *)\n               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))();\n      return pvVar1;\n    }\n    ch = (char)iVar3;\n  }\n  else {\n    iVar8 = 0x10;\n    if (a.addr_type - ADDR_IS_STEP < 2) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    paVar5 = (addr *)xmemdup(&a,0x10);\n    psVar2->a1 = paVar5;\n    iVar3 = in_nonblank();\n    if (iVar3 == 0x2c) {\n      iVar8 = in_nonblank();\n      _Var7 = compile_address(&a,iVar8);\n      iVar8 = 0x10;\n      if (CONCAT31(extraout_var,_Var7) == 0) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n      paVar5 = (addr *)xmemdup(&a,0x10);\n      psVar2->a2 = paVar5;\n      iVar3 = in_nonblank();\n    }\n    if ((psVar2->a1->addr_type != ADDR_IS_NUM) || (psVar2->a1->addr_number != 0)) goto LAB_0001570c;\n    in_a2 = 5;\n    if (((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    ch = (char)iVar3;\n    if (iVar3 == 0x21) goto LAB_00014f54;\n  }" if (parenthesized_expression "(CONCAT31(extraout_var_00,_Var7) == 0)" ( (binary_expression "CONCAT31(extraout_var_00,_Var7) == 0" (call_expression "CONCAT31(extraout_var_00,_Var7)" identifier (argument_list "(extraout_var_00,_Var7)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\nLAB_0001570c:\n    if (iVar3 == 0x21) {\nLAB_00014f54:\n      psVar2->addr_bang = '\x01';\n      iVar3 = in_nonblank();\n      if (iVar3 == 0x21) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar3 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      pvVar1 = (vector *)\n               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))();\n      return pvVar1;\n    }\n    ch = (char)iVar3;\n  }" { (labeled_statement "LAB_0001570c:\n    if (iVar3 == 0x21) {\nLAB_00014f54:\n      psVar2->addr_bang = '\x01';\n      iVar3 = in_nonblank();\n      if (iVar3 == 0x21) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n    }" statement_identifier : (if_statement "if (iVar3 == 0x21) {\nLAB_00014f54:\n      psVar2->addr_bang = '\x01';\n      iVar3 = in_nonblank();\n      if (iVar3 == 0x21) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n    }" if (parenthesized_expression "(iVar3 == 0x21)" ( (binary_expression "iVar3 == 0x21" identifier == number_literal) )) (compound_statement "{\nLAB_00014f54:\n      psVar2->addr_bang = '\x01';\n      iVar3 = in_nonblank();\n      if (iVar3 == 0x21) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n    }" { (labeled_statement "LAB_00014f54:\n      psVar2->addr_bang = '\x01';" statement_identifier : (expression_statement "psVar2->addr_bang = '\x01';" (assignment_expression "psVar2->addr_bang = '\x01'" (field_expression "psVar2->addr_bang" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;)) (expression_statement "iVar3 = in_nonblank();" (assignment_expression "iVar3 = in_nonblank()" identifier = (call_expression "in_nonblank()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0x21) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }" if (parenthesized_expression "(iVar3 == 0x21)" ( (binary_expression "iVar3 == 0x21" identifier == number_literal) )) (compound_statement "{\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }" { (expression_statement "pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);" (assignment_expression "pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1940,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1940" identifier + number_literal) , number_literal ))))) ;) comment (expression_statement "bad_prog(pcVar6);" (call_expression "bad_prog(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) })) }))) (if_statement "if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar3 - 0x3dU < 0x3e)) {\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      pvVar1 = (vector *)\n               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))();\n      return pvVar1;\n    }" if (parenthesized_expression "((*(int *)PTR_posixicity_000421a4 == 2) && (iVar3 - 0x3dU < 0x3e))" ( (binary_expression "(*(int *)PTR_posixicity_000421a4 == 2) && (iVar3 - 0x3dU < 0x3e)" (parenthesized_expression "(*(int *)PTR_posixicity_000421a4 == 2)" ( (binary_expression "*(int *)PTR_posixicity_000421a4 == 2" (pointer_expression "*(int *)PTR_posixicity_000421a4" * (cast_expression "(int *)PTR_posixicity_000421a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) && (parenthesized_expression "(iVar3 - 0x3dU < 0x3e)" ( (binary_expression "iVar3 - 0x3dU < 0x3e" (binary_expression "iVar3 - 0x3dU" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */\n                    /* WARNING: Treating indirect jump as call */\n      pvVar1 = (vector *)\n               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))();\n      return pvVar1;\n    }" { comment comment (expression_statement "pvVar1 = (vector *)\n               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))();" (assignment_expression "pvVar1 = (vector *)\n               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))()" identifier = (cast_expression "(vector *)\n               (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))()" ( (type_descriptor "vector *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48))" ( (binary_expression "&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)" * (cast_expression "(int *)(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48)" ( (binary_expression "PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4 + -0x1f48" (binary_expression "PTR_UINT_00042178 + (iVar3 - 0x3dU) * 4" identifier + (binary_expression "(iVar3 - 0x3dU) * 4" (parenthesized_expression "(iVar3 - 0x3dU)" ( (binary_expression "iVar3 - 0x3dU" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pvVar1;" return identifier ;) })) (expression_statement "ch = (char)iVar3;" (assignment_expression "ch = (char)iVar3" identifier = (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n    iVar8 = 0x10;\n    if (a.addr_type - ADDR_IS_STEP < 2) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    paVar5 = (addr *)xmemdup(&a,0x10);\n    psVar2->a1 = paVar5;\n    iVar3 = in_nonblank();\n    if (iVar3 == 0x2c) {\n      iVar8 = in_nonblank();\n      _Var7 = compile_address(&a,iVar8);\n      iVar8 = 0x10;\n      if (CONCAT31(extraout_var,_Var7) == 0) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n      paVar5 = (addr *)xmemdup(&a,0x10);\n      psVar2->a2 = paVar5;\n      iVar3 = in_nonblank();\n    }\n    if ((psVar2->a1->addr_type != ADDR_IS_NUM) || (psVar2->a1->addr_number != 0)) goto LAB_0001570c;\n    in_a2 = 5;\n    if (((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    ch = (char)iVar3;\n    if (iVar3 == 0x21) goto LAB_00014f54;\n  }" else (compound_statement "{\n    iVar8 = 0x10;\n    if (a.addr_type - ADDR_IS_STEP < 2) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    paVar5 = (addr *)xmemdup(&a,0x10);\n    psVar2->a1 = paVar5;\n    iVar3 = in_nonblank();\n    if (iVar3 == 0x2c) {\n      iVar8 = in_nonblank();\n      _Var7 = compile_address(&a,iVar8);\n      iVar8 = 0x10;\n      if (CONCAT31(extraout_var,_Var7) == 0) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n      paVar5 = (addr *)xmemdup(&a,0x10);\n      psVar2->a2 = paVar5;\n      iVar3 = in_nonblank();\n    }\n    if ((psVar2->a1->addr_type != ADDR_IS_NUM) || (psVar2->a1->addr_number != 0)) goto LAB_0001570c;\n    in_a2 = 5;\n    if (((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }\n    ch = (char)iVar3;\n    if (iVar3 == 0x21) goto LAB_00014f54;\n  }" { (expression_statement "iVar8 = 0x10;" (assignment_expression "iVar8 = 0x10" identifier = number_literal) ;) (if_statement "if (a.addr_type - ADDR_IS_STEP < 2) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }" if (parenthesized_expression "(a.addr_type - ADDR_IS_STEP < 2)" ( (binary_expression "a.addr_type - ADDR_IS_STEP < 2" (binary_expression "a.addr_type - ADDR_IS_STEP" (field_expression "a.addr_type" identifier . field_identifier) - identifier) < number_literal) )) (compound_statement "{\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }" { (expression_statement "pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);" (assignment_expression "pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1923,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1923" identifier + number_literal) , number_literal ))))) ;) comment (expression_statement "bad_prog(pcVar6);" (call_expression "bad_prog(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) })) (expression_statement "paVar5 = (addr *)xmemdup(&a,0x10);" (assignment_expression "paVar5 = (addr *)xmemdup(&a,0x10)" identifier = (cast_expression "(addr *)xmemdup(&a,0x10)" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmemdup(&a,0x10)" identifier (argument_list "(&a,0x10)" ( (pointer_expression "&a" & identifier) , number_literal ))))) ;) (expression_statement "psVar2->a1 = paVar5;" (assignment_expression "psVar2->a1 = paVar5" (field_expression "psVar2->a1" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar3 = in_nonblank();" (assignment_expression "iVar3 = in_nonblank()" identifier = (call_expression "in_nonblank()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0x2c) {\n      iVar8 = in_nonblank();\n      _Var7 = compile_address(&a,iVar8);\n      iVar8 = 0x10;\n      if (CONCAT31(extraout_var,_Var7) == 0) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n      paVar5 = (addr *)xmemdup(&a,0x10);\n      psVar2->a2 = paVar5;\n      iVar3 = in_nonblank();\n    }" if (parenthesized_expression "(iVar3 == 0x2c)" ( (binary_expression "iVar3 == 0x2c" identifier == number_literal) )) (compound_statement "{\n      iVar8 = in_nonblank();\n      _Var7 = compile_address(&a,iVar8);\n      iVar8 = 0x10;\n      if (CONCAT31(extraout_var,_Var7) == 0) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }\n      paVar5 = (addr *)xmemdup(&a,0x10);\n      psVar2->a2 = paVar5;\n      iVar3 = in_nonblank();\n    }" { (expression_statement "iVar8 = in_nonblank();" (assignment_expression "iVar8 = in_nonblank()" identifier = (call_expression "in_nonblank()" identifier (argument_list "()" ( )))) ;) (expression_statement "_Var7 = compile_address(&a,iVar8);" (assignment_expression "_Var7 = compile_address(&a,iVar8)" identifier = (call_expression "compile_address(&a,iVar8)" identifier (argument_list "(&a,iVar8)" ( (pointer_expression "&a" & identifier) , identifier )))) ;) (expression_statement "iVar8 = 0x10;" (assignment_expression "iVar8 = 0x10" identifier = number_literal) ;) (if_statement "if (CONCAT31(extraout_var,_Var7) == 0) {\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }" if (parenthesized_expression "(CONCAT31(extraout_var,_Var7) == 0)" ( (binary_expression "CONCAT31(extraout_var,_Var7) == 0" (call_expression "CONCAT31(extraout_var,_Var7)" identifier (argument_list "(extraout_var,_Var7)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n        pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    /* WARNING: Subroutine does not return */\n        bad_prog(pcVar6);\n      }" { (expression_statement "pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);" (assignment_expression "pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1932,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1932" identifier + number_literal) , number_literal ))))) ;) comment (expression_statement "bad_prog(pcVar6);" (call_expression "bad_prog(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) })) (expression_statement "paVar5 = (addr *)xmemdup(&a,0x10);" (assignment_expression "paVar5 = (addr *)xmemdup(&a,0x10)" identifier = (cast_expression "(addr *)xmemdup(&a,0x10)" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmemdup(&a,0x10)" identifier (argument_list "(&a,0x10)" ( (pointer_expression "&a" & identifier) , number_literal ))))) ;) (expression_statement "psVar2->a2 = paVar5;" (assignment_expression "psVar2->a2 = paVar5" (field_expression "psVar2->a2" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar3 = in_nonblank();" (assignment_expression "iVar3 = in_nonblank()" identifier = (call_expression "in_nonblank()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if ((psVar2->a1->addr_type != ADDR_IS_NUM) || (psVar2->a1->addr_number != 0)) goto LAB_0001570c;" if (parenthesized_expression "((psVar2->a1->addr_type != ADDR_IS_NUM) || (psVar2->a1->addr_number != 0))" ( (binary_expression "(psVar2->a1->addr_type != ADDR_IS_NUM) || (psVar2->a1->addr_number != 0)" (parenthesized_expression "(psVar2->a1->addr_type != ADDR_IS_NUM)" ( (binary_expression "psVar2->a1->addr_type != ADDR_IS_NUM" (field_expression "psVar2->a1->addr_type" (field_expression "psVar2->a1" identifier -> field_identifier) -> field_identifier) != identifier) )) || (parenthesized_expression "(psVar2->a1->addr_number != 0)" ( (binary_expression "psVar2->a1->addr_number != 0" (field_expression "psVar2->a1->addr_number" (field_expression "psVar2->a1" identifier -> field_identifier) -> field_identifier) != number_literal) ))) )) (goto_statement "goto LAB_0001570c;" goto statement_identifier ;)) (expression_statement "in_a2 = 5;" (assignment_expression "in_a2 = 5" identifier = number_literal) ;) (if_statement "if (((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }" if (parenthesized_expression "(((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2))" ( (binary_expression "((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)" (parenthesized_expression "((psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX))" ( (binary_expression "(psVar2->a2 == (addr *)0x0) || (psVar2->a2->addr_type != ADDR_IS_REGEX)" (parenthesized_expression "(psVar2->a2 == (addr *)0x0)" ( (binary_expression "psVar2->a2 == (addr *)0x0" (field_expression "psVar2->a2" identifier -> field_identifier) == (cast_expression "(addr *)0x0" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(psVar2->a2->addr_type != ADDR_IS_REGEX)" ( (binary_expression "psVar2->a2->addr_type != ADDR_IS_REGEX" (field_expression "psVar2->a2->addr_type" (field_expression "psVar2->a2" identifier -> field_identifier) -> field_identifier) != identifier) ))) )) || (parenthesized_expression "(*(int *)PTR_posixicity_000421a4 == 2)" ( (binary_expression "*(int *)PTR_posixicity_000421a4 == 2" (pointer_expression "*(int *)PTR_posixicity_000421a4" * (cast_expression "(int *)PTR_posixicity_000421a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) ))) )) (compound_statement "{\n      pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    /* WARNING: Subroutine does not return */\n      bad_prog(pcVar6);\n    }" { (expression_statement "pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);" (assignment_expression "pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x168f)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x168f" identifier + number_literal) ))))) ;) comment (expression_statement "bad_prog(pcVar6);" (call_expression "bad_prog(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) })) (expression_statement "ch = (char)iVar3;" (assignment_expression "ch = (char)iVar3" identifier = (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar3 == 0x21) goto LAB_00014f54;" if (parenthesized_expression "(iVar3 == 0x21)" ( (binary_expression "iVar3 == 0x21" identifier == number_literal) )) (goto_statement "goto LAB_00014f54;" goto statement_identifier ;)) }))) (expression_statement "piVar4 = (int *)(uint)(iVar3 + 1U < 0x7f);" (assignment_expression "piVar4 = (int *)(uint)(iVar3 + 1U < 0x7f)" identifier = (cast_expression "(int *)(uint)(iVar3 + 1U < 0x7f)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(iVar3 + 1U < 0x7f)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 + 1U < 0x7f)" ( (binary_expression "iVar3 + 1U < 0x7f" (binary_expression "iVar3 + 1U" identifier + number_literal) < number_literal) ))))) ;) (expression_statement "psVar2->cmd = ch;" (assignment_expression "psVar2->cmd = ch" (field_expression "psVar2->cmd" identifier -> field_identifier) = identifier) ;) (if_statement "if (piVar4 != (int *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x00015750. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pvVar1 = (vector *)\n             (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))();\n    return pvVar1;\n  }" if (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00015750. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    pvVar1 = (vector *)\n             (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))();\n    return pvVar1;\n  }" { comment comment (expression_statement "pvVar1 = (vector *)\n             (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))();" (assignment_expression "pvVar1 = (vector *)\n             (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))()" identifier = (cast_expression "(vector *)\n             (*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))()" ( (type_descriptor "vector *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50))" ( (binary_expression "&_gp + *(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)" * (cast_expression "(int *)(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50)" ( (binary_expression "PTR_UINT_00042178 + (iVar3 + 1U) * 4 + -0x1e50" (binary_expression "PTR_UINT_00042178 + (iVar3 + 1U) * 4" identifier + (binary_expression "(iVar3 + 1U) * 4" (parenthesized_expression "(iVar3 + 1U)" ( (binary_expression "iVar3 + 1U" identifier + number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return pvVar1;" return identifier ;) })) (expression_statement "bad_command(ch);" (call_expression "bad_command(ch)" identifier (argument_list "(ch)" ( identifier ))) ;) (labeled_statement "LAB_00016610:\n  if ((*piVar4 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(pcVar6);\n  }" statement_identifier : (if_statement "if ((*piVar4 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(pcVar6);\n  }" if (parenthesized_expression "((*piVar4 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0))" ( (binary_expression "(*piVar4 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" (parenthesized_expression "(*piVar4 == 2)" ( (binary_expression "*piVar4 == 2" (pointer_expression "*piVar4" * identifier) == number_literal) )) && (parenthesized_expression "(*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" ( (binary_expression "*(int *)(PTR_DAT_00042168 + 0x25d0) != 0" (pointer_expression "*(int *)(PTR_DAT_00042168 + 0x25d0)" * (cast_expression "(int *)(PTR_DAT_00042168 + 0x25d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00042168 + 0x25d0)" ( (binary_expression "PTR_DAT_00042168 + 0x25d0" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    /* WARNING: Subroutine does not return */\n    bad_prog(pcVar6);\n  }" { (expression_statement "pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);" (assignment_expression "pcVar6 = (char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1659,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1659" identifier + number_literal) , number_literal ))))) ;) comment (expression_statement "bad_prog(pcVar6);" (call_expression "bad_prog(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) }))) (if_statement "if (pvVar1 == *(vector **)PTR___stack_chk_guard_000424f0) {\n    return vector;\n  }" if (parenthesized_expression "(pvVar1 == *(vector **)PTR___stack_chk_guard_000424f0)" ( (binary_expression "pvVar1 == *(vector **)PTR___stack_chk_guard_000424f0" identifier == (pointer_expression "*(vector **)PTR___stack_chk_guard_000424f0" * (cast_expression "(vector **)PTR___stack_chk_guard_000424f0" ( (type_descriptor "vector **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return vector;\n  }" { (return_statement "return vector;" return identifier ;) })) (expression_statement "puVar11 = PTR___stack_chk_fail_000424d0;" (assignment_expression "puVar11 = PTR___stack_chk_fail_000424d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000424d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000424d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000424d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000424d0" * (cast_expression "(code *)PTR___stack_chk_fail_000424d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar10 = *(int *)(puVar11 + 0x2ba0c);" (assignment_expression "iVar10 = *(int *)(puVar11 + 0x2ba0c)" identifier = (pointer_expression "*(int *)(puVar11 + 0x2ba0c)" * (cast_expression "(int *)(puVar11 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x2ba0c)" ( (binary_expression "puVar11 + 0x2ba0c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x25f4) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x25f4) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x25f4)" * (cast_expression "(undefined4 *)(iVar10 + 0x25f4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x25f4)" ( (binary_expression "iVar10 + 0x25f4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar10 + 0x25e8) = iVar8;" (assignment_expression "*(int *)(iVar10 + 0x25e8) = iVar8" (pointer_expression "*(int *)(iVar10 + 0x25e8)" * (cast_expression "(int *)(iVar10 + 0x25e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x25e8)" ( (binary_expression "iVar10 + 0x25e8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar10 + 0x25ec) = iVar8;" (assignment_expression "*(int *)(iVar10 + 0x25ec) = iVar8" (pointer_expression "*(int *)(iVar10 + 0x25ec)" * (cast_expression "(int *)(iVar10 + 0x25ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x25ec)" ( (binary_expression "iVar10 + 0x25ec" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar10 + 0x25f0) = iVar8 + in_a2;" (assignment_expression "*(int *)(iVar10 + 0x25f0) = iVar8 + in_a2" (pointer_expression "*(int *)(iVar10 + 0x25f0)" * (cast_expression "(int *)(iVar10 + 0x25f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x25f0)" ( (binary_expression "iVar10 + 0x25f0" identifier + number_literal) )))) = (binary_expression "iVar8 + in_a2" identifier + identifier)) ;) (expression_statement "iVar8 = *(int *)(puVar11 + 0x2ba0c);" (assignment_expression "iVar8 = *(int *)(puVar11 + 0x2ba0c)" identifier = (pointer_expression "*(int *)(puVar11 + 0x2ba0c)" * (cast_expression "(int *)(puVar11 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x2ba0c)" ( (binary_expression "puVar11 + 0x2ba0c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x25e0) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x25e0) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x25e0)" * (cast_expression "(undefined4 *)(iVar8 + 0x25e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x25e0)" ( (binary_expression "iVar8 + 0x25e0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x25dc) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x25dc) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x25dc)" * (cast_expression "(undefined4 *)(iVar8 + 0x25dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x25dc)" ( (binary_expression "iVar8 + 0x25dc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar3 = *(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) + 1;" (assignment_expression "iVar3 = *(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) + 1" identifier = (binary_expression "*(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) + 1" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590)" * (cast_expression "(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x2ba0c) + 0x2590)" ( (binary_expression "*(int *)(puVar11 + 0x2ba0c) + 0x2590" (pointer_expression "*(int *)(puVar11 + 0x2ba0c)" * (cast_expression "(int *)(puVar11 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x2ba0c)" ( (binary_expression "puVar11 + 0x2ba0c" identifier + number_literal) )))) + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) = iVar3;" (assignment_expression "*(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590) = iVar3" (pointer_expression "*(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590)" * (cast_expression "(int *)(*(int *)(puVar11 + 0x2ba0c) + 0x2590)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x2ba0c) + 0x2590)" ( (binary_expression "*(int *)(puVar11 + 0x2ba0c) + 0x2590" (pointer_expression "*(int *)(puVar11 + 0x2ba0c)" * (cast_expression "(int *)(puVar11 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x2ba0c)" ( (binary_expression "puVar11 + 0x2ba0c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar8 + 0x25e4) = iVar3;" (assignment_expression "*(int *)(iVar8 + 0x25e4) = iVar3" (pointer_expression "*(int *)(iVar8 + 0x25e4)" * (cast_expression "(int *)(iVar8 + 0x25e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x25e4)" ( (binary_expression "iVar8 + 0x25e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar1 = compile_program(pvVar1);" (assignment_expression "pvVar1 = compile_program(pvVar1)" identifier = (call_expression "compile_program(pvVar1)" identifier (argument_list "(pvVar1)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x25e8) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x25e8) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x25e8)" * (cast_expression "(undefined4 *)(iVar10 + 0x25e8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x25e8)" ( (binary_expression "iVar10 + 0x25e8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x25ec) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x25ec) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x25ec)" * (cast_expression "(undefined4 *)(iVar10 + 0x25ec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x25ec)" ( (binary_expression "iVar10 + 0x25ec" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar10 + 0x25f0) = 0;" (assignment_expression "*(undefined4 *)(iVar10 + 0x25f0) = 0" (pointer_expression "*(undefined4 *)(iVar10 + 0x25f0)" * (cast_expression "(undefined4 *)(iVar10 + 0x25f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x25f0)" ( (binary_expression "iVar10 + 0x25f0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(*(int *)(puVar11 + 0x2ba0c) + 0x2010) = 0;" (assignment_expression "*(undefined1 *)(*(int *)(puVar11 + 0x2ba0c) + 0x2010) = 0" (pointer_expression "*(undefined1 *)(*(int *)(puVar11 + 0x2ba0c) + 0x2010)" * (cast_expression "(undefined1 *)(*(int *)(puVar11 + 0x2ba0c) + 0x2010)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x2ba0c) + 0x2010)" ( (binary_expression "*(int *)(puVar11 + 0x2ba0c) + 0x2010" (pointer_expression "*(int *)(puVar11 + 0x2ba0c)" * (cast_expression "(int *)(puVar11 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x2ba0c)" ( (binary_expression "puVar11 + 0x2ba0c" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (return_statement "return pvVar1;" return identifier ;) })))
(translation_unit "int * FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 uVar6;\n  undefined *puVar7;\n  int local_58 [11];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000424f0;\n  if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }\n  iVar5 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }\n  do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);\n  piVar2 = (int *)PTR_posixicity_000421a4;\n  if (iVar1 == -1) goto LAB_00016610;\n  iVar5 = param_1[1] + 0x28;\n  if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }\n  piVar2 = (int *)(*param_1 + param_1[2] * 0x18);\n  *piVar2 = 0;\n  piVar2[1] = 0;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  *(undefined1 *)((int)piVar2 + 0xd) = 0;\n  iVar5 = iVar1;\n  iVar3 = FUN_0001406c(local_58);\n  if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }\n  *(undefined1 *)((int)piVar2 + 0xd) = uVar6;\n  if (iVar1 + 1U < 0x7f) {\n                    \n                    \n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }\n  piVar2 = (int *)FUN_00014470();\nLAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }\n  puVar7 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar3 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar3 + 0x25f4) = 0;\n  *(int *)(iVar3 + 0x25e8) = iVar5;\n  *(int *)(iVar3 + 0x25ec) = iVar5;\n  *(int *)(iVar3 + 0x25f0) = iVar5 + param_3;\n  iVar5 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar5 + 0x25e0) = 0;\n  *(undefined4 *)(iVar5 + 0x25dc) = 0;\n  iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;\n  *(int *)(iVar5 + 0x25e4) = iVar1;\n  piVar2 = (int *)FUN_00014ce0();\n  *(undefined4 *)(iVar3 + 0x25e8) = 0;\n  *(undefined4 *)(iVar3 + 0x25ec) = 0;\n  *(undefined4 *)(iVar3 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;\n  return piVar2;\n}\n\n" (function_definition "int * FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 uVar6;\n  undefined *puVar7;\n  int local_58 [11];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000424f0;\n  if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }\n  iVar5 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }\n  do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);\n  piVar2 = (int *)PTR_posixicity_000421a4;\n  if (iVar1 == -1) goto LAB_00016610;\n  iVar5 = param_1[1] + 0x28;\n  if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }\n  piVar2 = (int *)(*param_1 + param_1[2] * 0x18);\n  *piVar2 = 0;\n  piVar2[1] = 0;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  *(undefined1 *)((int)piVar2 + 0xd) = 0;\n  iVar5 = iVar1;\n  iVar3 = FUN_0001406c(local_58);\n  if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }\n  *(undefined1 *)((int)piVar2 + 0xd) = uVar6;\n  if (iVar1 + 1U < 0x7f) {\n                    \n                    \n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }\n  piVar2 = (int *)FUN_00014470();\nLAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }\n  puVar7 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar3 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar3 + 0x25f4) = 0;\n  *(int *)(iVar3 + 0x25e8) = iVar5;\n  *(int *)(iVar3 + 0x25ec) = iVar5;\n  *(int *)(iVar3 + 0x25f0) = iVar5 + param_3;\n  iVar5 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar5 + 0x25e0) = 0;\n  *(undefined4 *)(iVar5 + 0x25dc) = 0;\n  iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;\n  *(int *)(iVar5 + 0x25e4) = iVar1;\n  piVar2 = (int *)FUN_00014ce0();\n  *(undefined4 *)(iVar3 + 0x25e8) = 0;\n  *(undefined4 *)(iVar3 + 0x25ec) = 0;\n  *(undefined4 *)(iVar3 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;\n  return piVar2;\n}" primitive_type (pointer_declarator "* FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)" * (function_declarator "FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)" identifier (parameter_list "(int *param_1,undefined4 param_2,int param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) )))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 uVar6;\n  undefined *puVar7;\n  int local_58 [11];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000424f0;\n  if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }\n  iVar5 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }\n  do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);\n  piVar2 = (int *)PTR_posixicity_000421a4;\n  if (iVar1 == -1) goto LAB_00016610;\n  iVar5 = param_1[1] + 0x28;\n  if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }\n  piVar2 = (int *)(*param_1 + param_1[2] * 0x18);\n  *piVar2 = 0;\n  piVar2[1] = 0;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  *(undefined1 *)((int)piVar2 + 0xd) = 0;\n  iVar5 = iVar1;\n  iVar3 = FUN_0001406c(local_58);\n  if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }\n  *(undefined1 *)((int)piVar2 + 0xd) = uVar6;\n  if (iVar1 + 1U < 0x7f) {\n                    \n                    \n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }\n  piVar2 = (int *)FUN_00014470();\nLAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }\n  puVar7 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar3 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar3 + 0x25f4) = 0;\n  *(int *)(iVar3 + 0x25e8) = iVar5;\n  *(int *)(iVar3 + 0x25ec) = iVar5;\n  *(int *)(iVar3 + 0x25f0) = iVar5 + param_3;\n  iVar5 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar5 + 0x25e0) = 0;\n  *(undefined4 *)(iVar5 + 0x25dc) = 0;\n  iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;\n  *(int *)(iVar5 + 0x25e4) = iVar1;\n  piVar2 = (int *)FUN_00014ce0();\n  *(undefined4 *)(iVar3 + 0x25e8) = 0;\n  *(undefined4 *)(iVar3 + 0x25ec) = 0;\n  *(undefined4 *)(iVar3 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;\n  return piVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined1 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int local_58 [11];" primitive_type (array_declarator "local_58 [11]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000424f0;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000424f0" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" * (cast_expression "(int *)PTR___stack_chk_guard_000424f0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }" { (expression_statement "param_1 = (int *)xcalloc(1,0xc);" (assignment_expression "param_1 = (int *)xcalloc(1,0xc)" identifier = (cast_expression "(int *)xcalloc(1,0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(1,0xc)" identifier (argument_list "(1,0xc)" ( number_literal , number_literal ))))) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (expression_statement "_obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);" (call_expression "_obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc)" identifier (argument_list "(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc)" ( (binary_expression "PTR_DAT_00042168 + 0x259c" identifier + number_literal) , number_literal , number_literal , identifier , identifier ))) ;) })) (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" identifier = number_literal) ;) (if_statement "if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" ( (binary_expression "*(int *)(PTR_DAT_00042168 + 0x25d0) != 0" (pointer_expression "*(int *)(PTR_DAT_00042168 + 0x25d0)" * (cast_expression "(int *)(PTR_DAT_00042168 + 0x25d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00042168 + 0x25d0)" ( (binary_expression "PTR_DAT_00042168 + 0x25d0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_00014a5c(0);\n  }" { (expression_statement "FUN_00014a5c(0);" (call_expression "FUN_00014a5c(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) (do_statement "do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);" do (compound_statement "{\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  }" { (do_statement "do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);" do (compound_statement "{\n      iVar1 = FUN_0001315c();\n    }" { (expression_statement "iVar1 = FUN_0001315c();" (assignment_expression "iVar1 = FUN_0001315c()" identifier = (call_expression "FUN_0001315c()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar1 == 0x3b)" ( (binary_expression "iVar1 == 0x3b" identifier == number_literal) )) ;) (expression_statement "piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_00042374)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_00042374)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_00042374)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_00042374" * (cast_expression "(code *)PTR___ctype_b_loc_00042374" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0)" ( (binary_expression "(*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*piVar2 + iVar1 * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar2 + iVar1 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar2 + iVar1 * 2)" * (cast_expression "(ushort *)(*piVar2 + iVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar2 + iVar1 * 2)" ( (binary_expression "*piVar2 + iVar1 * 2" (pointer_expression "*piVar2" * identifier) + (binary_expression "iVar1 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) ;) (expression_statement "piVar2 = (int *)PTR_posixicity_000421a4;" (assignment_expression "piVar2 = (int *)PTR_posixicity_000421a4" identifier = (cast_expression "(int *)PTR_posixicity_000421a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar1 == -1) goto LAB_00016610;" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (goto_statement "goto LAB_00016610;" goto statement_identifier ;)) (expression_statement "iVar5 = param_1[1] + 0x28;" (assignment_expression "iVar5 = param_1[1] + 0x28" identifier = (binary_expression "param_1[1] + 0x28" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }" if (parenthesized_expression "(param_1[2] == param_1[1])" ( (binary_expression "param_1[2] == param_1[1]" (subscript_expression "param_1[2]" identifier [ number_literal ]) == (subscript_expression "param_1[1]" identifier [ number_literal ])) )) (compound_statement "{\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }" { (expression_statement "param_1[1] = iVar5;" (assignment_expression "param_1[1] = iVar5" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3 = 1;" (assignment_expression "param_3 = 1" identifier = number_literal) ;) (if_statement "if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }" if (parenthesized_expression "(iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f))" ( (binary_expression "iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)" (binary_expression "iVar5 * 0x18 < 0" (binary_expression "iVar5 * 0x18" identifier * number_literal) < number_literal) || (parenthesized_expression "((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)" ( (binary_expression "(uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f" (binary_expression "(uint)(iVar5 * 3) >> 0x1d != 0" (binary_expression "(uint)(iVar5 * 3) >> 0x1d" (call_expression "(uint)(iVar5 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 * 3)" ( (binary_expression "iVar5 * 3" identifier * number_literal) ))) >> number_literal) != number_literal) || (binary_expression "(uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f" (call_expression "(uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)(iVar5 * 3) < (uint)(iVar5 * 2))" ( (binary_expression "(uint)(iVar5 * 3) < (uint)(iVar5 * 2)" (call_expression "(uint)(iVar5 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 * 3)" ( (binary_expression "iVar5 * 3" identifier * number_literal) ))) < (call_expression "(uint)(iVar5 * 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 * 2)" ( (binary_expression "iVar5 * 2" identifier * number_literal) )))) ))) != (binary_expression "iVar5 >> 0x1f" identifier >> number_literal))) ))) )) (compound_statement "{\n                    \n      xalloc_die(*param_1);\n    }" { (expression_statement "xalloc_die(*param_1);" (call_expression "xalloc_die(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) })) (expression_statement "iVar5 = xrealloc(*param_1,iVar5 * 0x18);" (assignment_expression "iVar5 = xrealloc(*param_1,iVar5 * 0x18)" identifier = (call_expression "xrealloc(*param_1,iVar5 * 0x18)" identifier (argument_list "(*param_1,iVar5 * 0x18)" ( (pointer_expression "*param_1" * identifier) , (binary_expression "iVar5 * 0x18" identifier * number_literal) )))) ;) (expression_statement "*param_1 = iVar5;" (assignment_expression "*param_1 = iVar5" (pointer_expression "*param_1" * identifier) = identifier) ;) })) (expression_statement "piVar2 = (int *)(*param_1 + param_1[2] * 0x18);" (assignment_expression "piVar2 = (int *)(*param_1 + param_1[2] * 0x18)" identifier = (cast_expression "(int *)(*param_1 + param_1[2] * 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + param_1[2] * 0x18)" ( (binary_expression "*param_1 + param_1[2] * 0x18" (pointer_expression "*param_1" * identifier) + (binary_expression "param_1[2] * 0x18" (subscript_expression "param_1[2]" identifier [ number_literal ]) * number_literal)) )))) ;) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" * identifier) = number_literal) ;) (expression_statement "piVar2[1] = 0;" (assignment_expression "piVar2[1] = 0" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar2[2] = 0;" (assignment_expression "piVar2[2] = 0" (subscript_expression "piVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar2 + 3) = 0;" (assignment_expression "*(undefined1 *)(piVar2 + 3) = 0" (pointer_expression "*(undefined1 *)(piVar2 + 3)" * (cast_expression "(undefined1 *)(piVar2 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 3)" ( (binary_expression "piVar2 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)piVar2 + 0xd) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0xd) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0xd)" * (cast_expression "(undefined1 *)((int)piVar2 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0xd)" ( (binary_expression "(int)piVar2 + 0xd" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = iVar1;" (assignment_expression "iVar5 = iVar1" identifier = identifier) ;) (expression_statement "iVar3 = FUN_0001406c(local_58);" (assignment_expression "iVar3 = FUN_0001406c(local_58)" identifier = (call_expression "FUN_0001406c(local_58)" identifier (argument_list "(local_58)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }" { (labeled_statement "LAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }" statement_identifier : (if_statement "if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }" if (parenthesized_expression "(iVar1 == 0x21)" ( (binary_expression "iVar1 == 0x21" identifier == number_literal) )) (compound_statement "{\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }" { (labeled_statement "LAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;" statement_identifier : (expression_statement "*(undefined1 *)(piVar2 + 3) = 1;" (assignment_expression "*(undefined1 *)(piVar2 + 3) = 1" (pointer_expression "*(undefined1 *)(piVar2 + 3)" * (cast_expression "(undefined1 *)(piVar2 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 3)" ( (binary_expression "piVar2 + 3" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "iVar1 = FUN_00013234();" (assignment_expression "iVar1 = FUN_00013234()" identifier = (call_expression "FUN_00013234()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }" if (parenthesized_expression "(iVar1 == 0x21)" ( (binary_expression "iVar1 == 0x21" identifier == number_literal) )) (compound_statement "{\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1940,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1940" identifier + number_literal) , number_literal )))) ;) (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) }))) (if_statement "if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }" if (parenthesized_expression "((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e))" ( (binary_expression "(*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)" (parenthesized_expression "(*(int *)PTR_posixicity_000421a4 == 2)" ( (binary_expression "*(int *)PTR_posixicity_000421a4 == 2" (pointer_expression "*(int *)PTR_posixicity_000421a4" * (cast_expression "(int *)PTR_posixicity_000421a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) && (parenthesized_expression "(iVar1 - 0x3dU < 0x3e)" ( (binary_expression "iVar1 - 0x3dU < 0x3e" (binary_expression "iVar1 - 0x3dU" identifier - number_literal) < number_literal) ))) )) (compound_statement "{\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }" { (expression_statement "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();" (assignment_expression "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))()" identifier = (cast_expression "(int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  ))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  ))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  ))" ( (binary_expression "&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" * (cast_expression "(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" ( (binary_expression "PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48" (binary_expression "PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4" identifier + (binary_expression "(iVar1 - 0x3dU) * 4" (parenthesized_expression "(iVar1 - 0x3dU)" ( (binary_expression "iVar1 - 0x3dU" identifier - number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar2;" return identifier ;) })) (expression_statement "uVar6 = (undefined1)iVar1;" (assignment_expression "uVar6 = (undefined1)iVar1" identifier = (cast_expression "(undefined1)iVar1" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) }) (else_clause "else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }" else (compound_statement "{\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }" { (expression_statement "iVar5 = 0x10;" (assignment_expression "iVar5 = 0x10" identifier = number_literal) ;) (if_statement "if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }" if (parenthesized_expression "(local_58[0] - 4U < 2)" ( (binary_expression "local_58[0] - 4U < 2" (binary_expression "local_58[0] - 4U" (subscript_expression "local_58[0]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1923,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1923" identifier + number_literal) , number_literal )))) ;) (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "iVar1 = xmemdup(local_58);" (assignment_expression "iVar1 = xmemdup(local_58)" identifier = (call_expression "xmemdup(local_58)" identifier (argument_list "(local_58)" ( identifier )))) ;) (expression_statement "*piVar2 = iVar1;" (assignment_expression "*piVar2 = iVar1" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "iVar1 = FUN_00013234();" (assignment_expression "iVar1 = FUN_00013234()" identifier = (call_expression "FUN_00013234()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }" if (parenthesized_expression "(iVar1 == 0x2c)" ( (binary_expression "iVar1 == 0x2c" identifier == number_literal) )) (compound_statement "{\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }" { (expression_statement "uVar4 = FUN_00013234();" (assignment_expression "uVar4 = FUN_00013234()" identifier = (call_expression "FUN_00013234()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = FUN_0001406c(local_58,uVar4);" (assignment_expression "iVar1 = FUN_0001406c(local_58,uVar4)" identifier = (call_expression "FUN_0001406c(local_58,uVar4)" identifier (argument_list "(local_58,uVar4)" ( identifier , identifier )))) ;) (expression_statement "iVar5 = 0x10;" (assignment_expression "iVar5 = 0x10" identifier = number_literal) ;) (if_statement "if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1932,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1932" identifier + number_literal) , number_literal )))) ;) (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "iVar1 = xmemdup(local_58);" (assignment_expression "iVar1 = xmemdup(local_58)" identifier = (call_expression "xmemdup(local_58)" identifier (argument_list "(local_58)" ( identifier )))) ;) (expression_statement "piVar2[1] = iVar1;" (assignment_expression "piVar2[1] = iVar1" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar1 = FUN_00013234();" (assignment_expression "iVar1 = FUN_00013234()" identifier = (call_expression "FUN_00013234()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;" if (parenthesized_expression "((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0))" ( (binary_expression "(*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)" (parenthesized_expression "(*(int *)*piVar2 != 2)" ( (binary_expression "*(int *)*piVar2 != 2" (pointer_expression "*(int *)*piVar2" * (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) != number_literal) )) || (parenthesized_expression "(((int *)*piVar2)[1] != 0)" ( (binary_expression "((int *)*piVar2)[1] != 0" (subscript_expression "((int *)*piVar2)[1]" (parenthesized_expression "((int *)*piVar2)" ( (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier)) )) [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_0001570c;" goto statement_identifier ;)) (expression_statement "param_3 = 5;" (assignment_expression "param_3 = 5" identifier = number_literal) ;) (if_statement "if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }" if (parenthesized_expression "((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2))" ( (binary_expression "(((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)" (parenthesized_expression "(((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1))" ( (binary_expression "((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)" (parenthesized_expression "((int *)piVar2[1] == (int *)0x0)" ( (binary_expression "(int *)piVar2[1] == (int *)0x0" (cast_expression "(int *)piVar2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[1]" identifier [ number_literal ])) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(int *)piVar2[1] != 1)" ( (binary_expression "*(int *)piVar2[1] != 1" (pointer_expression "*(int *)piVar2[1]" * (cast_expression "(int *)piVar2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[1]" identifier [ number_literal ]))) != number_literal) ))) )) || (parenthesized_expression "(*(int *)PTR_posixicity_000421a4 == 2)" ( (binary_expression "*(int *)PTR_posixicity_000421a4 == 2" (pointer_expression "*(int *)PTR_posixicity_000421a4" * (cast_expression "(int *)PTR_posixicity_000421a4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) ))) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x168f)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x168f" identifier + number_literal) )))) ;) (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) })) (expression_statement "uVar6 = (undefined1)iVar1;" (assignment_expression "uVar6 = (undefined1)iVar1" identifier = (cast_expression "(undefined1)iVar1" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (if_statement "if (iVar1 == 0x21) goto LAB_00014f54;" if (parenthesized_expression "(iVar1 == 0x21)" ( (binary_expression "iVar1 == 0x21" identifier == number_literal) )) (goto_statement "goto LAB_00014f54;" goto statement_identifier ;)) }))) (expression_statement "*(undefined1 *)((int)piVar2 + 0xd) = uVar6;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0xd) = uVar6" (pointer_expression "*(undefined1 *)((int)piVar2 + 0xd)" * (cast_expression "(undefined1 *)((int)piVar2 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + 0xd)" ( (binary_expression "(int)piVar2 + 0xd" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (iVar1 + 1U < 0x7f) {\n                    \n                    \n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }" if (parenthesized_expression "(iVar1 + 1U < 0x7f)" ( (binary_expression "iVar1 + 1U < 0x7f" (binary_expression "iVar1 + 1U" identifier + number_literal) < number_literal) )) (compound_statement "{\n                    \n                    \n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }" { (expression_statement "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;" (assignment_expression "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()" identifier = (cast_expression "(int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50))" ( (binary_expression "&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" * (cast_expression "(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" ( (binary_expression "PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50" (binary_expression "PTR_UINT_00042178 + (iVar1 + 1U) * 4" identifier + (binary_expression "(iVar1 + 1U) * 4" (parenthesized_expression "(iVar1 + 1U)" ( (binary_expression "iVar1 + 1U" identifier + number_literal) )) * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar2;" return identifier ;) })) (expression_statement "piVar2 = (int *)FUN_00014470();" (assignment_expression "piVar2 = (int *)FUN_00014470()" identifier = (cast_expression "(int *)FUN_00014470()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014470()" identifier (argument_list "()" ( ))))) ;) (labeled_statement "LAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }" statement_identifier : (if_statement "if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }" if (parenthesized_expression "((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0))" ( (binary_expression "(*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" (parenthesized_expression "(*piVar2 == 2)" ( (binary_expression "*piVar2 == 2" (pointer_expression "*piVar2" * identifier) == number_literal) )) && (parenthesized_expression "(*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" ( (binary_expression "*(int *)(PTR_DAT_00042168 + 0x25d0) != 0" (pointer_expression "*(int *)(PTR_DAT_00042168 + 0x25d0)" * (cast_expression "(int *)(PTR_DAT_00042168 + 0x25d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00042168 + 0x25d0)" ( (binary_expression "PTR_DAT_00042168 + 0x25d0" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }" { (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" ( (pointer_expression "*(code *)PTR_dcgettext_000424d8" * (cast_expression "(code *)PTR_dcgettext_000424d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_UINT_00042178 + -0x1659,5)" ( number_literal , (binary_expression "PTR_UINT_00042178 + -0x1659" identifier + number_literal) , number_literal )))) ;) (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) }))) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_000424f0)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_000424f0" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" * (cast_expression "(int *)PTR___stack_chk_guard_000424f0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return param_1;\n  }" { (return_statement "return param_1;" return identifier ;) })) (expression_statement "puVar7 = PTR___stack_chk_fail_000424d0;" (assignment_expression "puVar7 = PTR___stack_chk_fail_000424d0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000424d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000424d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000424d0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000424d0" * (cast_expression "(code *)PTR___stack_chk_fail_000424d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *(int *)(puVar7 + 0x2ba0c);" (assignment_expression "iVar3 = *(int *)(puVar7 + 0x2ba0c)" identifier = (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" * (cast_expression "(int *)(puVar7 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2ba0c)" ( (binary_expression "puVar7 + 0x2ba0c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x25f4) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25f4) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25f4)" * (cast_expression "(undefined4 *)(iVar3 + 0x25f4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25f4)" ( (binary_expression "iVar3 + 0x25f4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar3 + 0x25e8) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x25e8) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x25e8)" * (cast_expression "(int *)(iVar3 + 0x25e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25e8)" ( (binary_expression "iVar3 + 0x25e8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar3 + 0x25ec) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x25ec) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x25ec)" * (cast_expression "(int *)(iVar3 + 0x25ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25ec)" ( (binary_expression "iVar3 + 0x25ec" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar3 + 0x25f0) = iVar5 + param_3;" (assignment_expression "*(int *)(iVar3 + 0x25f0) = iVar5 + param_3" (pointer_expression "*(int *)(iVar3 + 0x25f0)" * (cast_expression "(int *)(iVar3 + 0x25f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25f0)" ( (binary_expression "iVar3 + 0x25f0" identifier + number_literal) )))) = (binary_expression "iVar5 + param_3" identifier + identifier)) ;) (expression_statement "iVar5 = *(int *)(puVar7 + 0x2ba0c);" (assignment_expression "iVar5 = *(int *)(puVar7 + 0x2ba0c)" identifier = (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" * (cast_expression "(int *)(puVar7 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2ba0c)" ( (binary_expression "puVar7 + 0x2ba0c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x25e0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x25e0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x25e0)" * (cast_expression "(undefined4 *)(iVar5 + 0x25e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x25e0)" ( (binary_expression "iVar5 + 0x25e0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x25dc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x25dc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x25dc)" * (cast_expression "(undefined4 *)(iVar5 + 0x25dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x25dc)" ( (binary_expression "iVar5 + 0x25dc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;" (assignment_expression "iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1" identifier = (binary_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1" (pointer_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" * (cast_expression "(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" ( (binary_expression "*(int *)(puVar7 + 0x2ba0c) + 0x2590" (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" * (cast_expression "(int *)(puVar7 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2ba0c)" ( (binary_expression "puVar7 + 0x2ba0c" identifier + number_literal) )))) + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;" (assignment_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1" (pointer_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" * (cast_expression "(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" ( (binary_expression "*(int *)(puVar7 + 0x2ba0c) + 0x2590" (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" * (cast_expression "(int *)(puVar7 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2ba0c)" ( (binary_expression "puVar7 + 0x2ba0c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar5 + 0x25e4) = iVar1;" (assignment_expression "*(int *)(iVar5 + 0x25e4) = iVar1" (pointer_expression "*(int *)(iVar5 + 0x25e4)" * (cast_expression "(int *)(iVar5 + 0x25e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x25e4)" ( (binary_expression "iVar5 + 0x25e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar2 = (int *)FUN_00014ce0();" (assignment_expression "piVar2 = (int *)FUN_00014ce0()" identifier = (cast_expression "(int *)FUN_00014ce0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00014ce0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x25e8) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25e8) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25e8)" * (cast_expression "(undefined4 *)(iVar3 + 0x25e8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25e8)" ( (binary_expression "iVar3 + 0x25e8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x25ec) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25ec) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25ec)" * (cast_expression "(undefined4 *)(iVar3 + 0x25ec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25ec)" ( (binary_expression "iVar3 + 0x25ec" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x25f0) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25f0) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25f0)" * (cast_expression "(undefined4 *)(iVar3 + 0x25f0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x25f0)" ( (binary_expression "iVar3 + 0x25f0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;" (assignment_expression "*(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0" (pointer_expression "*(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010)" * (cast_expression "(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar7 + 0x2ba0c) + 0x2010)" ( (binary_expression "*(int *)(puVar7 + 0x2ba0c) + 0x2010" (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" * (cast_expression "(int *)(puVar7 + 0x2ba0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 0x2ba0c)" ( (binary_expression "puVar7 + 0x2ba0c" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (return_statement "return piVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE 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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = 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) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (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 ( ))))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) < LIT) || (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))) >> LIT) != LIT) || (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT * LIT) )))) ))) != (binary_expression IDENT >> LIT))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < 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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) + LIT) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < 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 ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ]) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( LIT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < 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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + LIT) ))))) )))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (return_statement return IDENT ;) })))
(function_definition "int * FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 uVar6;\n  undefined *puVar7;\n  int local_58 [11];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000424f0;\n  if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }\n  iVar5 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }\n  do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);\n  piVar2 = (int *)PTR_posixicity_000421a4;\n  if (iVar1 == -1) goto LAB_00016610;\n  iVar5 = param_1[1] + 0x28;\n  if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }\n  piVar2 = (int *)(*param_1 + param_1[2] * 0x18);\n  *piVar2 = 0;\n  piVar2[1] = 0;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  *(undefined1 *)((int)piVar2 + 0xd) = 0;\n  iVar5 = iVar1;\n  iVar3 = FUN_0001406c(local_58);\n  if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }\n  *(undefined1 *)((int)piVar2 + 0xd) = uVar6;\n  if (iVar1 + 1U < 0x7f) {\n                    \n                    \n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }\n  piVar2 = (int *)FUN_00014470();\nLAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }\n  puVar7 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar3 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar3 + 0x25f4) = 0;\n  *(int *)(iVar3 + 0x25e8) = iVar5;\n  *(int *)(iVar3 + 0x25ec) = iVar5;\n  *(int *)(iVar3 + 0x25f0) = iVar5 + param_3;\n  iVar5 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar5 + 0x25e0) = 0;\n  *(undefined4 *)(iVar5 + 0x25dc) = 0;\n  iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;\n  *(int *)(iVar5 + 0x25e4) = iVar1;\n  piVar2 = (int *)FUN_00014ce0();\n  *(undefined4 *)(iVar3 + 0x25e8) = 0;\n  *(undefined4 *)(iVar3 + 0x25ec) = 0;\n  *(undefined4 *)(iVar3 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;\n  return piVar2;\n}" (primitive_type "int") (pointer_declarator "* FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)" (* "*") (function_declarator "FUN_00014ce0(int *param_1,undefined4 param_2,int param_3)" (identifier "FUN_00014ce0") (parameter_list "(int *param_1,undefined4 param_2,int param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")")))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  undefined1 uVar6;\n  undefined *puVar7;\n  int local_58 [11];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_000424f0;\n  if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }\n  iVar5 = 10;\n  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }\n  do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);\n  piVar2 = (int *)PTR_posixicity_000421a4;\n  if (iVar1 == -1) goto LAB_00016610;\n  iVar5 = param_1[1] + 0x28;\n  if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }\n  piVar2 = (int *)(*param_1 + param_1[2] * 0x18);\n  *piVar2 = 0;\n  piVar2[1] = 0;\n  piVar2[2] = 0;\n  *(undefined1 *)(piVar2 + 3) = 0;\n  *(undefined1 *)((int)piVar2 + 0xd) = 0;\n  iVar5 = iVar1;\n  iVar3 = FUN_0001406c(local_58);\n  if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }\n  *(undefined1 *)((int)piVar2 + 0xd) = uVar6;\n  if (iVar1 + 1U < 0x7f) {\n                    \n                    \n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }\n  piVar2 = (int *)FUN_00014470();\nLAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }\n  if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }\n  puVar7 = PTR___stack_chk_fail_000424d0;\n  (*(code *)PTR___stack_chk_fail_000424d0)();\n  iVar3 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar3 + 0x25f4) = 0;\n  *(int *)(iVar3 + 0x25e8) = iVar5;\n  *(int *)(iVar3 + 0x25ec) = iVar5;\n  *(int *)(iVar3 + 0x25f0) = iVar5 + param_3;\n  iVar5 = *(int *)(puVar7 + 0x2ba0c);\n  *(undefined4 *)(iVar5 + 0x25e0) = 0;\n  *(undefined4 *)(iVar5 + 0x25dc) = 0;\n  iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;\n  *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;\n  *(int *)(iVar5 + 0x25e4) = iVar1;\n  piVar2 = (int *)FUN_00014ce0();\n  *(undefined4 *)(iVar3 + 0x25e8) = 0;\n  *(undefined4 *)(iVar3 + 0x25ec) = 0;\n  *(undefined4 *)(iVar3 + 0x25f0) = 0;\n  *(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;\n  return piVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined1 uVar6;" (type_identifier "undefined1") (identifier "uVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int local_58 [11];" (primitive_type "int") (array_declarator "local_58 [11]" (identifier "local_58") ([ "[") (number_literal "11") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000424f0;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000424f0" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000424f0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000424f0")))) (; ";")) (if_statement "if (param_1 == (int *)0x0) {\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_1 = (int *)xcalloc(1,0xc);\n    *param_1 = 0;\n    param_1[1] = 0;\n    param_1[2] = 0;\n    param_3 = 0;\n    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);\n  }" ({ "{") (expression_statement "param_1 = (int *)xcalloc(1,0xc);" (assignment_expression "param_1 = (int *)xcalloc(1,0xc)" (identifier "param_1") (= "=") (cast_expression "(int *)xcalloc(1,0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xcalloc(1,0xc)" (identifier "xcalloc") (argument_list "(1,0xc)" (( "(") (number_literal "1") (, ",") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" (identifier "param_3") (= "=") (number_literal "0")) (; ";")) (expression_statement "_obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);" (call_expression "_obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc)" (identifier "_obstack_begin") (argument_list "(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc)" (( "(") (binary_expression "PTR_DAT_00042168 + 0x259c" (identifier "PTR_DAT_00042168") (+ "+") (number_literal "0x259c")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "PTR_xzalloc_000421d0") (, ",") (identifier "PTR_free_000424fc") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = 10;" (assignment_expression "iVar5 = 10" (identifier "iVar5") (= "=") (number_literal "10")) (; ";")) (if_statement "if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {\n    FUN_00014a5c(0);\n  }" (if "if") (parenthesized_expression "(*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_00042168 + 0x25d0) != 0" (pointer_expression "*(int *)(PTR_DAT_00042168 + 0x25d0)" (* "*") (cast_expression "(int *)(PTR_DAT_00042168 + 0x25d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00042168 + 0x25d0)" (( "(") (binary_expression "PTR_DAT_00042168 + 0x25d0" (identifier "PTR_DAT_00042168") (+ "+") (number_literal "0x25d0")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00014a5c(0);\n  }" ({ "{") (expression_statement "FUN_00014a5c(0);" (call_expression "FUN_00014a5c(0)" (identifier "FUN_00014a5c") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}"))) (do_statement "do {\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);" (do "do") (compound_statement "{\n    do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);\n    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();\n  }" ({ "{") (do_statement "do {\n      iVar1 = FUN_0001315c();\n    } while (iVar1 == 0x3b);" (do "do") (compound_statement "{\n      iVar1 = FUN_0001315c();\n    }" ({ "{") (expression_statement "iVar1 = FUN_0001315c();" (assignment_expression "iVar1 = FUN_0001315c()" (identifier "iVar1") (= "=") (call_expression "FUN_0001315c()" (identifier "FUN_0001315c") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 == 0x3b)" (( "(") (binary_expression "iVar1 == 0x3b" (identifier "iVar1") (== "==") (number_literal "0x3b")) () ")")) (; ";")) (expression_statement "piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();" (assignment_expression "piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)()" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_00042374)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_00042374)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_00042374)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_00042374" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_00042374" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_00042374"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0)" (( "(") (binary_expression "(*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0" (parenthesized_expression "(*(ushort *)(*piVar2 + iVar1 * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(*piVar2 + iVar1 * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar2 + iVar1 * 2)" (* "*") (cast_expression "(ushort *)(*piVar2 + iVar1 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar2 + iVar1 * 2)" (( "(") (binary_expression "*piVar2 + iVar1 * 2" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (binary_expression "iVar1 * 2" (identifier "iVar1") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "piVar2 = (int *)PTR_posixicity_000421a4;" (assignment_expression "piVar2 = (int *)PTR_posixicity_000421a4" (identifier "piVar2") (= "=") (cast_expression "(int *)PTR_posixicity_000421a4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_posixicity_000421a4"))) (; ";")) (if_statement "if (iVar1 == -1) goto LAB_00016610;" (if "if") (parenthesized_expression "(iVar1 == -1)" (( "(") (binary_expression "iVar1 == -1" (identifier "iVar1") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_00016610;" (goto "goto") (statement_identifier "LAB_00016610") (; ";"))) (expression_statement "iVar5 = param_1[1] + 0x28;" (assignment_expression "iVar5 = param_1[1] + 0x28" (identifier "iVar5") (= "=") (binary_expression "param_1[1] + 0x28" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x28"))) (; ";")) (if_statement "if (param_1[2] == param_1[1]) {\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }" (if "if") (parenthesized_expression "(param_1[2] == param_1[1])" (( "(") (binary_expression "param_1[2] == param_1[1]" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (== "==") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n    param_1[1] = iVar5;\n    param_3 = 1;\n    if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }\n    iVar5 = xrealloc(*param_1,iVar5 * 0x18);\n    *param_1 = iVar5;\n  }" ({ "{") (expression_statement "param_1[1] = iVar5;" (assignment_expression "param_1[1] = iVar5" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "param_3 = 1;" (assignment_expression "param_3 = 1" (identifier "param_3") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {\n                    \n      xalloc_die(*param_1);\n    }" (if "if") (parenthesized_expression "(iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f))" (( "(") (binary_expression "iVar5 * 0x18 < 0 ||\n        ((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)" (binary_expression "iVar5 * 0x18 < 0" (binary_expression "iVar5 * 0x18" (identifier "iVar5") (* "*") (number_literal "0x18")) (< "<") (number_literal "0")) (|| "||") (parenthesized_expression "((uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)" (( "(") (binary_expression "(uint)(iVar5 * 3) >> 0x1d != 0 ||\n        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f" (binary_expression "(uint)(iVar5 * 3) >> 0x1d != 0" (binary_expression "(uint)(iVar5 * 3) >> 0x1d" (call_expression "(uint)(iVar5 * 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar5 * 3)" (( "(") (binary_expression "iVar5 * 3" (identifier "iVar5") (* "*") (number_literal "3")) () ")"))) (>> ">>") (number_literal "0x1d")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "(uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f" (call_expression "(uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)(iVar5 * 3) < (uint)(iVar5 * 2))" (( "(") (binary_expression "(uint)(iVar5 * 3) < (uint)(iVar5 * 2)" (call_expression "(uint)(iVar5 * 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar5 * 3)" (( "(") (binary_expression "iVar5 * 3" (identifier "iVar5") (* "*") (number_literal "3")) () ")"))) (< "<") (call_expression "(uint)(iVar5 * 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar5 * 2)" (( "(") (binary_expression "iVar5 * 2" (identifier "iVar5") (* "*") (number_literal "2")) () ")")))) () ")"))) (!= "!=") (binary_expression "iVar5 >> 0x1f" (identifier "iVar5") (>> ">>") (number_literal "0x1f")))) () ")"))) () ")")) (compound_statement "{\n                    \n      xalloc_die(*param_1);\n    }" ({ "{") (expression_statement "xalloc_die(*param_1);" (call_expression "xalloc_die(*param_1)" (identifier "xalloc_die") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = xrealloc(*param_1,iVar5 * 0x18);" (assignment_expression "iVar5 = xrealloc(*param_1,iVar5 * 0x18)" (identifier "iVar5") (= "=") (call_expression "xrealloc(*param_1,iVar5 * 0x18)" (identifier "xrealloc") (argument_list "(*param_1,iVar5 * 0x18)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (binary_expression "iVar5 * 0x18" (identifier "iVar5") (* "*") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*param_1 = iVar5;" (assignment_expression "*param_1 = iVar5" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)(*param_1 + param_1[2] * 0x18);" (assignment_expression "piVar2 = (int *)(*param_1 + param_1[2] * 0x18)" (identifier "piVar2") (= "=") (cast_expression "(int *)(*param_1 + param_1[2] * 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + param_1[2] * 0x18)" (( "(") (binary_expression "*param_1 + param_1[2] * 0x18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (binary_expression "param_1[2] * 0x18" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (* "*") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "*piVar2 = 0;" (assignment_expression "*piVar2 = 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[1] = 0;" (assignment_expression "piVar2[1] = 0" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2[2] = 0;" (assignment_expression "piVar2[2] = 0" (subscript_expression "piVar2[2]" (identifier "piVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar2 + 3) = 0;" (assignment_expression "*(undefined1 *)(piVar2 + 3) = 0" (pointer_expression "*(undefined1 *)(piVar2 + 3)" (* "*") (cast_expression "(undefined1 *)(piVar2 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2 + 3)" (( "(") (binary_expression "piVar2 + 3" (identifier "piVar2") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)piVar2 + 0xd) = 0;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0xd) = 0" (pointer_expression "*(undefined1 *)((int)piVar2 + 0xd)" (* "*") (cast_expression "(undefined1 *)((int)piVar2 + 0xd)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + 0xd)" (( "(") (binary_expression "(int)piVar2 + 0xd" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (number_literal "0xd")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = iVar1;" (assignment_expression "iVar5 = iVar1" (identifier "iVar5") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "iVar3 = FUN_0001406c(local_58);" (assignment_expression "iVar3 = FUN_0001406c(local_58)" (identifier "iVar3") (= "=") (call_expression "FUN_0001406c(local_58)" (identifier "FUN_0001406c") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }\n  else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }\n    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }\n    uVar6 = (undefined1)iVar1;\n  }" ({ "{") (labeled_statement "LAB_0001570c:\n    if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }" (statement_identifier "LAB_0001570c") (: ":") (if_statement "if (iVar1 == 0x21) {\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }" (if "if") (parenthesized_expression "(iVar1 == 0x21)" (( "(") (binary_expression "iVar1 == 0x21" (identifier "iVar1") (== "==") (number_literal "0x21")) () ")")) (compound_statement "{\nLAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;\n      iVar1 = FUN_00013234();\n      if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }\n    }" ({ "{") (labeled_statement "LAB_00014f54:\n      *(undefined1 *)(piVar2 + 3) = 1;" (statement_identifier "LAB_00014f54") (: ":") (expression_statement "*(undefined1 *)(piVar2 + 3) = 1;" (assignment_expression "*(undefined1 *)(piVar2 + 3) = 1" (pointer_expression "*(undefined1 *)(piVar2 + 3)" (* "*") (cast_expression "(undefined1 *)(piVar2 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2 + 3)" (( "(") (binary_expression "piVar2 + 3" (identifier "piVar2") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "1")) (; ";"))) (expression_statement "iVar1 = FUN_00013234();" (assignment_expression "iVar1 = FUN_00013234()" (identifier "iVar1") (= "=") (call_expression "FUN_00013234()" (identifier "FUN_00013234") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0x21) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }" (if "if") (parenthesized_expression "(iVar1 == 0x21)" (( "(") (binary_expression "iVar1 == 0x21" (identifier "iVar1") (== "==") (number_literal "0x21")) () ")")) (compound_statement "{\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);\n                    \n        bad_prog(uVar4);\n      }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000424d8" (* "*") (cast_expression "(code *)PTR_dcgettext_000424d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000424d8"))) () ")")) (argument_list "(0,PTR_UINT_00042178 + -0x1940,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_UINT_00042178 + -0x1940" (identifier "PTR_UINT_00042178") (+ "+") (number_literal "-0x1940")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" (identifier "bad_prog") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }" (if "if") (parenthesized_expression "((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e))" (( "(") (binary_expression "(*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)" (parenthesized_expression "(*(int *)PTR_posixicity_000421a4 == 2)" (( "(") (binary_expression "*(int *)PTR_posixicity_000421a4 == 2" (pointer_expression "*(int *)PTR_posixicity_000421a4" (* "*") (cast_expression "(int *)PTR_posixicity_000421a4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_posixicity_000421a4"))) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 - 0x3dU < 0x3e)" (( "(") (binary_expression "iVar1 - 0x3dU < 0x3e" (binary_expression "iVar1 - 0x3dU" (identifier "iVar1") (- "-") (number_literal "0x3dU")) (< "<") (number_literal "0x3e")) () ")"))) () ")")) (compound_statement "{\n                    \n                    \n      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();\n      return piVar2;\n    }" ({ "{") (expression_statement "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))();" (assignment_expression "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))()" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  ))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  ))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  ))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" (* "*") (cast_expression "(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48\n                                                  )" (( "(") (binary_expression "PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48" (binary_expression "PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4" (identifier "PTR_UINT_00042178") (+ "+") (binary_expression "(iVar1 - 0x3dU) * 4" (parenthesized_expression "(iVar1 - 0x3dU)" (( "(") (binary_expression "iVar1 - 0x3dU" (identifier "iVar1") (- "-") (number_literal "0x3dU")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x1f48")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "uVar6 = (undefined1)iVar1;" (assignment_expression "uVar6 = (undefined1)iVar1" (identifier "uVar6") (= "=") (cast_expression "(undefined1)iVar1" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "iVar1"))) (; ";")) (} "}")) (else_clause "else {\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }" (else "else") (compound_statement "{\n    iVar5 = 0x10;\n    if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }\n    iVar1 = xmemdup(local_58);\n    *piVar2 = iVar1;\n    iVar1 = FUN_00013234();\n    if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }\n    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;\n    param_3 = 5;\n    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }\n    uVar6 = (undefined1)iVar1;\n    if (iVar1 == 0x21) goto LAB_00014f54;\n  }" ({ "{") (expression_statement "iVar5 = 0x10;" (assignment_expression "iVar5 = 0x10" (identifier "iVar5") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if (local_58[0] - 4U < 2) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }" (if "if") (parenthesized_expression "(local_58[0] - 4U < 2)" (( "(") (binary_expression "local_58[0] - 4U < 2" (binary_expression "local_58[0] - 4U" (subscript_expression "local_58[0]" (identifier "local_58") ([ "[") (number_literal "0") (] "]")) (- "-") (number_literal "4U")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);\n                    \n      bad_prog(uVar4);\n    }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000424d8" (* "*") (cast_expression "(code *)PTR_dcgettext_000424d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000424d8"))) () ")")) (argument_list "(0,PTR_UINT_00042178 + -0x1923,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_UINT_00042178 + -0x1923" (identifier "PTR_UINT_00042178") (+ "+") (number_literal "-0x1923")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" (identifier "bad_prog") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = xmemdup(local_58);" (assignment_expression "iVar1 = xmemdup(local_58)" (identifier "iVar1") (= "=") (call_expression "xmemdup(local_58)" (identifier "xmemdup") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")")))) (; ";")) (expression_statement "*piVar2 = iVar1;" (assignment_expression "*piVar2 = iVar1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "iVar1 = FUN_00013234();" (assignment_expression "iVar1 = FUN_00013234()" (identifier "iVar1") (= "=") (call_expression "FUN_00013234()" (identifier "FUN_00013234") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0x2c) {\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }" (if "if") (parenthesized_expression "(iVar1 == 0x2c)" (( "(") (binary_expression "iVar1 == 0x2c" (identifier "iVar1") (== "==") (number_literal "0x2c")) () ")")) (compound_statement "{\n      uVar4 = FUN_00013234();\n      iVar1 = FUN_0001406c(local_58,uVar4);\n      iVar5 = 0x10;\n      if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }\n      iVar1 = xmemdup(local_58);\n      piVar2[1] = iVar1;\n      iVar1 = FUN_00013234();\n    }" ({ "{") (expression_statement "uVar4 = FUN_00013234();" (assignment_expression "uVar4 = FUN_00013234()" (identifier "uVar4") (= "=") (call_expression "FUN_00013234()" (identifier "FUN_00013234") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar1 = FUN_0001406c(local_58,uVar4);" (assignment_expression "iVar1 = FUN_0001406c(local_58,uVar4)" (identifier "iVar1") (= "=") (call_expression "FUN_0001406c(local_58,uVar4)" (identifier "FUN_0001406c") (argument_list "(local_58,uVar4)" (( "(") (identifier "local_58") (, ",") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "iVar5 = 0x10;" (assignment_expression "iVar5 = 0x10" (identifier "iVar5") (= "=") (number_literal "0x10")) (; ";")) (if_statement "if (iVar1 == 0) {\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);\n                    \n        bad_prog(uVar4);\n      }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000424d8" (* "*") (cast_expression "(code *)PTR_dcgettext_000424d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000424d8"))) () ")")) (argument_list "(0,PTR_UINT_00042178 + -0x1932,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_UINT_00042178 + -0x1932" (identifier "PTR_UINT_00042178") (+ "+") (number_literal "-0x1932")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" (identifier "bad_prog") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = xmemdup(local_58);" (assignment_expression "iVar1 = xmemdup(local_58)" (identifier "iVar1") (= "=") (call_expression "xmemdup(local_58)" (identifier "xmemdup") (argument_list "(local_58)" (( "(") (identifier "local_58") () ")")))) (; ";")) (expression_statement "piVar2[1] = iVar1;" (assignment_expression "piVar2[1] = iVar1" (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "iVar1 = FUN_00013234();" (assignment_expression "iVar1 = FUN_00013234()" (identifier "iVar1") (= "=") (call_expression "FUN_00013234()" (identifier "FUN_00013234") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;" (if "if") (parenthesized_expression "((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0))" (( "(") (binary_expression "(*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)" (parenthesized_expression "(*(int *)*piVar2 != 2)" (( "(") (binary_expression "*(int *)*piVar2 != 2" (pointer_expression "*(int *)*piVar2" (* "*") (cast_expression "(int *)*piVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar2" (* "*") (identifier "piVar2")))) (!= "!=") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(((int *)*piVar2)[1] != 0)" (( "(") (binary_expression "((int *)*piVar2)[1] != 0" (subscript_expression "((int *)*piVar2)[1]" (parenthesized_expression "((int *)*piVar2)" (( "(") (cast_expression "(int *)*piVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) () ")")) ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0001570c;" (goto "goto") (statement_identifier "LAB_0001570c") (; ";"))) (expression_statement "param_3 = 5;" (assignment_expression "param_3 = 5" (identifier "param_3") (= "=") (number_literal "5")) (; ";")) (if_statement "if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)) {\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }" (if "if") (parenthesized_expression "((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2))" (( "(") (binary_expression "(((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||\n       (*(int *)PTR_posixicity_000421a4 == 2)" (parenthesized_expression "(((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1))" (( "(") (binary_expression "((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)" (parenthesized_expression "((int *)piVar2[1] == (int *)0x0)" (( "(") (binary_expression "(int *)piVar2[1] == (int *)0x0" (cast_expression "(int *)piVar2[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]"))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)piVar2[1] != 1)" (( "(") (binary_expression "*(int *)piVar2[1] != 1" (pointer_expression "*(int *)piVar2[1]" (* "*") (cast_expression "(int *)piVar2[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")))) (!= "!=") (number_literal "1")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)PTR_posixicity_000421a4 == 2)" (( "(") (binary_expression "*(int *)PTR_posixicity_000421a4 == 2" (pointer_expression "*(int *)PTR_posixicity_000421a4" (* "*") (cast_expression "(int *)PTR_posixicity_000421a4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_posixicity_000421a4"))) (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);\n                    \n      bad_prog(uVar4);\n    }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000424d8" (* "*") (cast_expression "(code *)PTR_dcgettext_000424d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000424d8"))) () ")")) (argument_list "(0,PTR_UINT_00042178 + -0x168f)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_UINT_00042178 + -0x168f" (identifier "PTR_UINT_00042178") (+ "+") (number_literal "-0x168f")) () ")")))) (; ";")) (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" (identifier "bad_prog") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar6 = (undefined1)iVar1;" (assignment_expression "uVar6 = (undefined1)iVar1" (identifier "uVar6") (= "=") (cast_expression "(undefined1)iVar1" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "iVar1"))) (; ";")) (if_statement "if (iVar1 == 0x21) goto LAB_00014f54;" (if "if") (parenthesized_expression "(iVar1 == 0x21)" (( "(") (binary_expression "iVar1 == 0x21" (identifier "iVar1") (== "==") (number_literal "0x21")) () ")")) (goto_statement "goto LAB_00014f54;" (goto "goto") (statement_identifier "LAB_00014f54") (; ";"))) (} "}")))) (expression_statement "*(undefined1 *)((int)piVar2 + 0xd) = uVar6;" (assignment_expression "*(undefined1 *)((int)piVar2 + 0xd) = uVar6" (pointer_expression "*(undefined1 *)((int)piVar2 + 0xd)" (* "*") (cast_expression "(undefined1 *)((int)piVar2 + 0xd)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + 0xd)" (( "(") (binary_expression "(int)piVar2 + 0xd" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (number_literal "0xd")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (iVar1 + 1U < 0x7f) {\n                    \n                    \n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }" (if "if") (parenthesized_expression "(iVar1 + 1U < 0x7f)" (( "(") (binary_expression "iVar1 + 1U < 0x7f" (binary_expression "iVar1 + 1U" (identifier "iVar1") (+ "+") (number_literal "1U")) (< "<") (number_literal "0x7f")) () ")")) (compound_statement "{\n                    \n                    \n    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;\n    return piVar2;\n  }" ({ "{") (expression_statement "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()\n    ;" (assignment_expression "piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" (* "*") (cast_expression "(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)" (( "(") (binary_expression "PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50" (binary_expression "PTR_UINT_00042178 + (iVar1 + 1U) * 4" (identifier "PTR_UINT_00042178") (+ "+") (binary_expression "(iVar1 + 1U) * 4" (parenthesized_expression "(iVar1 + 1U)" (( "(") (binary_expression "iVar1 + 1U" (identifier "iVar1") (+ "+") (number_literal "1U")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "-0x1e50")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)FUN_00014470();" (assignment_expression "piVar2 = (int *)FUN_00014470()" (identifier "piVar2") (= "=") (cast_expression "(int *)FUN_00014470()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00014470()" (identifier "FUN_00014470") (argument_list "()" (( "(") () ")"))))) (; ";")) (labeled_statement "LAB_00016610:\n  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }" (statement_identifier "LAB_00016610") (: ":") (if_statement "if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }" (if "if") (parenthesized_expression "((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0))" (( "(") (binary_expression "(*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" (parenthesized_expression "(*piVar2 == 2)" (( "(") (binary_expression "*piVar2 == 2" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_00042168 + 0x25d0) != 0" (pointer_expression "*(int *)(PTR_DAT_00042168 + 0x25d0)" (* "*") (cast_expression "(int *)(PTR_DAT_00042168 + 0x25d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00042168 + 0x25d0)" (( "(") (binary_expression "PTR_DAT_00042168 + 0x25d0" (identifier "PTR_DAT_00042168") (+ "+") (number_literal "0x25d0")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);\n                    \n    bad_prog(uVar4);\n  }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);" (assignment_expression "uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_000424d8)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_000424d8" (* "*") (cast_expression "(code *)PTR_dcgettext_000424d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_000424d8"))) () ")")) (argument_list "(0,PTR_UINT_00042178 + -0x1659,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_UINT_00042178 + -0x1659" (identifier "PTR_UINT_00042178") (+ "+") (number_literal "-0x1659")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "bad_prog(uVar4);" (call_expression "bad_prog(uVar4)" (identifier "bad_prog") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}")))) (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {\n    return param_1;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_000424f0)" (( "(") (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_000424f0" (identifier "local_2c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000424f0" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000424f0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000424f0")))) () ")")) (compound_statement "{\n    return param_1;\n  }" ({ "{") (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "puVar7 = PTR___stack_chk_fail_000424d0;" (assignment_expression "puVar7 = PTR___stack_chk_fail_000424d0" (identifier "puVar7") (= "=") (identifier "PTR___stack_chk_fail_000424d0")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000424d0)();" (call_expression "(*(code *)PTR___stack_chk_fail_000424d0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000424d0)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000424d0" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000424d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000424d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar7 + 0x2ba0c);" (assignment_expression "iVar3 = *(int *)(puVar7 + 0x2ba0c)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" (* "*") (cast_expression "(int *)(puVar7 + 0x2ba0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x2ba0c)" (( "(") (binary_expression "puVar7 + 0x2ba0c" (identifier "puVar7") (+ "+") (number_literal "0x2ba0c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x25f4) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25f4) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25f4)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x25f4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x25f4)" (( "(") (binary_expression "iVar3 + 0x25f4" (identifier "iVar3") (+ "+") (number_literal "0x25f4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(iVar3 + 0x25e8) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x25e8) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x25e8)" (* "*") (cast_expression "(int *)(iVar3 + 0x25e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x25e8)" (( "(") (binary_expression "iVar3 + 0x25e8" (identifier "iVar3") (+ "+") (number_literal "0x25e8")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(iVar3 + 0x25ec) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x25ec) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x25ec)" (* "*") (cast_expression "(int *)(iVar3 + 0x25ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x25ec)" (( "(") (binary_expression "iVar3 + 0x25ec" (identifier "iVar3") (+ "+") (number_literal "0x25ec")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(iVar3 + 0x25f0) = iVar5 + param_3;" (assignment_expression "*(int *)(iVar3 + 0x25f0) = iVar5 + param_3" (pointer_expression "*(int *)(iVar3 + 0x25f0)" (* "*") (cast_expression "(int *)(iVar3 + 0x25f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x25f0)" (( "(") (binary_expression "iVar3 + 0x25f0" (identifier "iVar3") (+ "+") (number_literal "0x25f0")) () ")")))) (= "=") (binary_expression "iVar5 + param_3" (identifier "iVar5") (+ "+") (identifier "param_3"))) (; ";")) (expression_statement "iVar5 = *(int *)(puVar7 + 0x2ba0c);" (assignment_expression "iVar5 = *(int *)(puVar7 + 0x2ba0c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" (* "*") (cast_expression "(int *)(puVar7 + 0x2ba0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x2ba0c)" (( "(") (binary_expression "puVar7 + 0x2ba0c" (identifier "puVar7") (+ "+") (number_literal "0x2ba0c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x25e0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x25e0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x25e0)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x25e0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x25e0)" (( "(") (binary_expression "iVar5 + 0x25e0" (identifier "iVar5") (+ "+") (number_literal "0x25e0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x25dc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x25dc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x25dc)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x25dc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x25dc)" (( "(") (binary_expression "iVar5 + 0x25dc" (identifier "iVar5") (+ "+") (number_literal "0x25dc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;" (assignment_expression "iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1" (identifier "iVar1") (= "=") (binary_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1" (pointer_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" (* "*") (cast_expression "(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" (( "(") (binary_expression "*(int *)(puVar7 + 0x2ba0c) + 0x2590" (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" (* "*") (cast_expression "(int *)(puVar7 + 0x2ba0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x2ba0c)" (( "(") (binary_expression "puVar7 + 0x2ba0c" (identifier "puVar7") (+ "+") (number_literal "0x2ba0c")) () ")")))) (+ "+") (number_literal "0x2590")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;" (assignment_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1" (pointer_expression "*(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" (* "*") (cast_expression "(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar7 + 0x2ba0c) + 0x2590)" (( "(") (binary_expression "*(int *)(puVar7 + 0x2ba0c) + 0x2590" (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" (* "*") (cast_expression "(int *)(puVar7 + 0x2ba0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x2ba0c)" (( "(") (binary_expression "puVar7 + 0x2ba0c" (identifier "puVar7") (+ "+") (number_literal "0x2ba0c")) () ")")))) (+ "+") (number_literal "0x2590")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "*(int *)(iVar5 + 0x25e4) = iVar1;" (assignment_expression "*(int *)(iVar5 + 0x25e4) = iVar1" (pointer_expression "*(int *)(iVar5 + 0x25e4)" (* "*") (cast_expression "(int *)(iVar5 + 0x25e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x25e4)" (( "(") (binary_expression "iVar5 + 0x25e4" (identifier "iVar5") (+ "+") (number_literal "0x25e4")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "piVar2 = (int *)FUN_00014ce0();" (assignment_expression "piVar2 = (int *)FUN_00014ce0()" (identifier "piVar2") (= "=") (cast_expression "(int *)FUN_00014ce0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00014ce0()" (identifier "FUN_00014ce0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x25e8) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25e8) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25e8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x25e8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x25e8)" (( "(") (binary_expression "iVar3 + 0x25e8" (identifier "iVar3") (+ "+") (number_literal "0x25e8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x25ec) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25ec) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25ec)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x25ec)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x25ec)" (( "(") (binary_expression "iVar3 + 0x25ec" (identifier "iVar3") (+ "+") (number_literal "0x25ec")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x25f0) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + 0x25f0) = 0" (pointer_expression "*(undefined4 *)(iVar3 + 0x25f0)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x25f0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x25f0)" (( "(") (binary_expression "iVar3 + 0x25f0" (identifier "iVar3") (+ "+") (number_literal "0x25f0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;" (assignment_expression "*(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0" (pointer_expression "*(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010)" (* "*") (cast_expression "(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar7 + 0x2ba0c) + 0x2010)" (( "(") (binary_expression "*(int *)(puVar7 + 0x2ba0c) + 0x2010" (pointer_expression "*(int *)(puVar7 + 0x2ba0c)" (* "*") (cast_expression "(int *)(puVar7 + 0x2ba0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 0x2ba0c)" (( "(") (binary_expression "puVar7 + 0x2ba0c" (identifier "puVar7") (+ "+") (number_literal "0x2ba0c")) () ")")))) (+ "+") (number_literal "0x2010")) () ")")))) (= "=") (number_literal "0")) (; ";")) (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (do_statement body: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (identifier) right: (number_literal))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))))))) arguments: (argument_list))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) 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 (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))))) (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: (pointer_expression argument: (identifier)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) index: (number_literal)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (number_literal)))))))))) arguments: (argument_list))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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 (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) (return_statement (identifier)))))

int * MASKED(int *param_1,undefined4 param_2,int param_3)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  undefined1 uVar6;
  undefined *puVar7;
  int local_58 [11];
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_000424f0;
  if (param_1 == (int *)0x0) {
    param_1 = (int *)xcalloc(1,0xc);
    *param_1 = 0;
    param_1[1] = 0;
    param_1[2] = 0;
    param_3 = 0;
    _obstack_begin(PTR_DAT_00042168 + 0x259c,0,0,PTR_xzalloc_000421d0,PTR_free_000424fc);
  }
  iVar5 = 10;
  if (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0) {
    FUN_00014a5c(0);
  }
  do {
    do {
      iVar1 = FUN_0001315c();
    } while (iVar1 == 0x3b);
    piVar2 = (int *)(*(code *)PTR___ctype_b_loc_00042374)();
  } while ((*(ushort *)(*piVar2 + iVar1 * 2) & 0x20) != 0);
  piVar2 = (int *)PTR_posixicity_000421a4;
  if (iVar1 == -1) goto LAB_00016610;
  iVar5 = param_1[1] + 0x28;
  if (param_1[2] == param_1[1]) {
    param_1[1] = iVar5;
    param_3 = 1;
    if (iVar5 * 0x18 < 0 ||
        ((uint)(iVar5 * 3) >> 0x1d != 0 ||
        (uint)((uint)(iVar5 * 3) < (uint)(iVar5 * 2)) != iVar5 >> 0x1f)) {
                    /* WARNING: Subroutine does not return */
      xalloc_die(*param_1);
    }
    iVar5 = xrealloc(*param_1,iVar5 * 0x18);
    *param_1 = iVar5;
  }
  piVar2 = (int *)(*param_1 + param_1[2] * 0x18);
  *piVar2 = 0;
  piVar2[1] = 0;
  piVar2[2] = 0;
  *(undefined1 *)(piVar2 + 3) = 0;
  *(undefined1 *)((int)piVar2 + 0xd) = 0;
  iVar5 = iVar1;
  iVar3 = FUN_0001406c(local_58);
  if (iVar3 == 0) {
LAB_0001570c:
    if (iVar1 == 0x21) {
LAB_00014f54:
      *(undefined1 *)(piVar2 + 3) = 1;
      iVar1 = FUN_00013234();
      if (iVar1 == 0x21) {
        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1940,5);
                    /* WARNING: Subroutine does not return */
        bad_prog(uVar4);
      }
    }
    if ((*(int *)PTR_posixicity_000421a4 == 2) && (iVar1 - 0x3dU < 0x3e)) {
                    /* WARNING: Could not emulate address calculation at 0x00014ff0 */
                    /* WARNING: Treating indirect jump as call */
      piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 - 0x3dU) * 4 + -0x1f48
                                                  )))();
      return piVar2;
    }
    uVar6 = (undefined1)iVar1;
  }
  else {
    iVar5 = 0x10;
    if (local_58[0] - 4U < 2) {
      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1923,5);
                    /* WARNING: Subroutine does not return */
      bad_prog(uVar4);
    }
    iVar1 = xmemdup(local_58);
    *piVar2 = iVar1;
    iVar1 = FUN_00013234();
    if (iVar1 == 0x2c) {
      uVar4 = FUN_00013234();
      iVar1 = FUN_0001406c(local_58,uVar4);
      iVar5 = 0x10;
      if (iVar1 == 0) {
        uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1932,5);
                    /* WARNING: Subroutine does not return */
        bad_prog(uVar4);
      }
      iVar1 = xmemdup(local_58);
      piVar2[1] = iVar1;
      iVar1 = FUN_00013234();
    }
    if ((*(int *)*piVar2 != 2) || (((int *)*piVar2)[1] != 0)) goto LAB_0001570c;
    param_3 = 5;
    if ((((int *)piVar2[1] == (int *)0x0) || (*(int *)piVar2[1] != 1)) ||
       (*(int *)PTR_posixicity_000421a4 == 2)) {
      uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x168f);
                    /* WARNING: Subroutine does not return */
      bad_prog(uVar4);
    }
    uVar6 = (undefined1)iVar1;
    if (iVar1 == 0x21) goto LAB_00014f54;
  }
  *(undefined1 *)((int)piVar2 + 0xd) = uVar6;
  if (iVar1 + 1U < 0x7f) {
                    /* WARNING: Could not emulate address calculation at 0x00015744 */
                    /* WARNING: Treating indirect jump as call */
    piVar2 = (int *)(*(code *)(&_gp_1 + *(int *)(PTR_UINT_00042178 + (iVar1 + 1U) * 4 + -0x1e50)))()
    ;
    return piVar2;
  }
  piVar2 = (int *)FUN_00014470();
LAB_00016610:
  if ((*piVar2 == 2) && (*(int *)(PTR_DAT_00042168 + 0x25d0) != 0)) {
    uVar4 = (*(code *)PTR_dcgettext_000424d8)(0,PTR_UINT_00042178 + -0x1659,5);
                    /* WARNING: Subroutine does not return */
    bad_prog(uVar4);
  }
  if (local_2c == *(int *)PTR___stack_chk_guard_000424f0) {
    return param_1;
  }
  puVar7 = PTR___stack_chk_fail_000424d0;
  (*(code *)PTR___stack_chk_fail_000424d0)();
  iVar3 = *(int *)(puVar7 + 0x2ba0c);
  *(undefined4 *)(iVar3 + 0x25f4) = 0;
  *(int *)(iVar3 + 0x25e8) = iVar5;
  *(int *)(iVar3 + 0x25ec) = iVar5;
  *(int *)(iVar3 + 0x25f0) = iVar5 + param_3;
  iVar5 = *(int *)(puVar7 + 0x2ba0c);
  *(undefined4 *)(iVar5 + 0x25e0) = 0;
  *(undefined4 *)(iVar5 + 0x25dc) = 0;
  iVar1 = *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) + 1;
  *(int *)(*(int *)(puVar7 + 0x2ba0c) + 0x2590) = iVar1;
  *(int *)(iVar5 + 0x25e4) = iVar1;
  piVar2 = (int *)MASKED();
  *(undefined4 *)(iVar3 + 0x25e8) = 0;
  *(undefined4 *)(iVar3 + 0x25ec) = 0;
  *(undefined4 *)(iVar3 + 0x25f0) = 0;
  *(undefined1 *)(*(int *)(puVar7 + 0x2ba0c) + 0x2010) = 0;
  return piVar2;
}

