
char * sysfs_attr(char *dev,char *attr)

{
  int iVar1;
  int iVar2;
  char *pcVar3;
  int iVar4;
  int *piVar5;
  char *pcVar6;
  undefined4 uVar7;
  undefined *puVar8;
  char path [4096];
  
  iVar1 = *(int *)PTR___stack_chk_guard_000220c0;
  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);
  (*(code *)PTR_snprintf_00022080)(path,0xfff,PTR_00022044 + 0x180c,dev,attr);
  iVar2 = (*(code *)PTR_open_000220a0)(path,0);
  if (iVar2 < 0) {
    pcVar3 = (char *)0x0;
  }
  else {
    iVar4 = (*(code *)PTR_read_000220d0)(iVar2,PTR_DAT_00022038 + 0x20f0,0x80);
    (*(code *)PTR_close_00022070)(iVar2);
    iVar2 = iVar4 + -1;
    if (iVar2 < 1) {
LAB_00010ce0:
      pcVar3 = (char *)0x0;
      if (-1 < iVar2) {
        pcVar3 = PTR_DAT_00022038 + 0x20f0;
      }
    }
    else {
      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();
      puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;
      do {
        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;
        puVar8[-1] = 0;
        iVar2 = iVar2 + -1;
        puVar8 = puVar8 + -1;
      } while (iVar2 != 0);
      pcVar3 = PTR_DAT_00022038 + 0x20f0;
    }
  }
  if (iVar1 == *(int *)PTR___stack_chk_guard_000220c0) {
    return pcVar3;
  }
  puVar8 = PTR___stack_chk_fail_000220bc;
  (*(code *)PTR___stack_chk_fail_000220bc)();
  do {
    do {
      iVar2 = (**(code **)(puVar8 + 0x11378))(iVar1);
      if (iVar2 == 0) {
        return (char *)0x0;
      }
      piVar5 = (int *)(**(code **)(puVar8 + 0x11364))();
    } while ((*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8) == 0);
    pcVar3 = (char *)(iVar2 + 0xb);
    iVar2 = (**(code **)(puVar8 + 0x11398))(pcVar3,0x3a);
  } while (iVar2 != 0);
  (**(code **)(puVar8 + 0x11384))(*(int *)(puVar8 + 0x11338) + 0x2174,0,0x110);
  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1828));
  if (pcVar6 != (char *)0x0) {
    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);
    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2174) = uVar7;
  }
  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1830));
  if (pcVar6 != (char *)0x0) {
    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);
    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2178) = uVar7;
  }
  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1838));
  if (pcVar6 != (char *)0x0) {
    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);
    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x217c) = uVar7;
  }
  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1844));
  if (pcVar6 != (char *)0x0) {
    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);
    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2180) = uVar7;
  }
  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1850));
  if (pcVar6 != (char *)0x0) {
    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2184,pcVar6);
  }
  pcVar3 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1860));
  if (pcVar3 != (char *)0x0) {
    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2204,pcVar3);
  }
  pcVar3 = (char *)0x0;
  if ((((*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&
       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)) &&
      (*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0)) &&
     (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2180) != 0)) {
    pcVar3 = (char *)(*(int *)(puVar8 + 0x11338) + 0x2174);
  }
  return pcVar3;
}



undefined * FUN_00010b80(undefined4 param_1,undefined4 param_2)

{
  int iVar1;
  undefined *puVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  undefined4 uVar6;
  undefined *puVar7;
  undefined1 auStack_1014 [4096];
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_000220c0;
  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);
  (*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);
  iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);
  if (iVar1 < 0) {
    puVar2 = (undefined *)0x0;
  }
  else {
    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);
    (*(code *)PTR_close_00022070)(iVar1);
    iVar1 = iVar3 + -1;
    if (iVar1 < 1) {
LAB_00010ce0:
      puVar2 = (undefined *)0x0;
      if (-1 < iVar1) {
        puVar2 = PTR_DAT_00022038 + 0x20f0;
      }
    }
    else {
      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();
      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;
      do {
        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;
        puVar2[-1] = 0;
        iVar1 = iVar1 + -1;
        puVar2 = puVar2 + -1;
      } while (iVar1 != 0);
      puVar2 = PTR_DAT_00022038 + 0x20f0;
    }
  }
  if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {
    return puVar2;
  }
  iVar1 = local_14;
  puVar2 = PTR___stack_chk_fail_000220bc;
  (*(code *)PTR___stack_chk_fail_000220bc)();
  do {
    do {
      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);
      if (iVar3 == 0) {
        return (undefined *)0x0;
      }
      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();
    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);
    iVar3 = iVar3 + 0xb;
    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);
  } while (iVar5 != 0);
  (**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);
  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);
  if (iVar1 != 0) {
    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);
    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;
  }
  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);
  if (iVar1 != 0) {
    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);
    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;
  }
  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);
  if (iVar1 != 0) {
    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);
    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;
  }
  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);
  if (iVar1 != 0) {
    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);
    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;
  }
  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);
  if (iVar1 != 0) {
    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);
  }
  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);
  if (iVar1 != 0) {
    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);
  }
  puVar7 = (undefined *)0x0;
  if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&
       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&
      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&
     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {
    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);
  }
  return puVar7;
}


lui gp,0x2
addiu gp,gp,-0x6b70
addu gp,gp,t9
addiu sp,sp,-0x1038
sw ra,0x1034(sp)
sw s1,0x1030(sp)
sw s0,0x102c(sp)
sw gp,0x18(sp)
or s0,a0,zero
or s1,a1,zero
lw v0,-0x7f50(gp)
lw v0,0x0(v0)
sw v0,0x1024(sp)
li a2,0x81
or a1,zero,zero
lw a0,-0x7fd8(gp)
addiu a0,a0,0x20f0
lw t9,-0x7f8c(gp)
jalr t9
_nop
lw gp,0x18(sp)
sw s1,0x10(sp)
or a3,s0,zero
lw a2,-0x7fcc(gp)
addiu a2,a2,0x180c
li a1,0xfff
addiu s0,sp,0x24
or a0,s0,zero
lw t9,-0x7f90(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a1,zero,zero
or a0,s0,zero
lw t9,-0x7f70(gp)
jalr t9
_nop
lw gp,0x18(sp)
bgez v0,0x00010c48
_or s0,v0,zero
or v0,zero,zero
lw a0,0x1024(sp)
lw v1,-0x7f50(gp)
lw v1,0x0(v1)
bne a0,v1,0x00010cf4
_lw ra,0x1034(sp)
lw s1,0x1030(sp)
lw s0,0x102c(sp)
jr ra
_addiu sp,sp,0x1038
li a2,0x80
lw a1,-0x7fd8(gp)
addiu a1,a1,0x20f0
or a0,v0,zero
lw t9,-0x7f40(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s1,v0,zero
or a0,s0,zero
lw t9,-0x7fa0(gp)
jalr t9
_nop
lw gp,0x18(sp)
addiu s0,s1,-0x1
blez s0,0x00010ce0
_lw t9,-0x7fac(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v1,-0x7fd8(gp)
addiu v1,v1,0x20f0
addu v1,v1,s1
lb a1,-0x1(v1)
lw a0,0x0(v0)
sll a1,a1,0x1
addu a0,a0,a1
lhu a0,0x0(a0)
andi a0,a0,0x20
beq a0,zero,0x00010ce0
_nop
sb zero,-0x1(v1)
addiu s0,s0,-0x1
bne s0,zero,0x00010ca4
_addiu v1,v1,-0x1
lw v0,-0x7fd8(gp)
b 0x00010c24
_addiu v0,v0,0x20f0
bltz s0,0x00010c24
_or v0,zero,zero
lw v0,-0x7fd8(gp)
b 0x00010c24
_addiu v0,v0,0x20f0
lw t9,-0x7f54(gp)
jalr t9
_nop
(translation_unit "undefined * FUN_00010b80(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined1 auStack_1014 [4096];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);\n  iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);\n  if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }\n  iVar1 = local_14;\n  puVar2 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);\n  (**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }\n  puVar7 = (undefined *)0x0;\n  if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }\n  return puVar7;\n}\n\n" (function_definition "undefined * FUN_00010b80(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined1 auStack_1014 [4096];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);\n  iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);\n  if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }\n  iVar1 = local_14;\n  puVar2 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);\n  (**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }\n  puVar7 = (undefined *)0x0;\n  if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }\n  return puVar7;\n}" type_identifier (pointer_declarator "* FUN_00010b80(undefined4 param_1,undefined4 param_2)" * (function_declarator "FUN_00010b80(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) )))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined1 auStack_1014 [4096];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);\n  iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);\n  if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }\n  iVar1 = local_14;\n  puVar2 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);\n  (**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }\n  puVar7 = (undefined *)0x0;\n  if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }\n  return puVar7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 auStack_1014 [4096];" type_identifier (array_declarator "auStack_1014 [4096]" identifier [ number_literal ]) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000220c0;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_000220c0" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000220c0" * (cast_expression "(int *)PTR___stack_chk_guard_000220c0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);" (call_expression "(*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81)" (parenthesized_expression "(*(code *)PTR_memset_00022084)" ( (pointer_expression "*(code *)PTR_memset_00022084" * (cast_expression "(code *)PTR_memset_00022084" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_00022038 + 0x20f0,0,0x81)" ( (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);" (call_expression "(*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2)" (parenthesized_expression "(*(code *)PTR_snprintf_00022080)" ( (pointer_expression "*(code *)PTR_snprintf_00022080" * (cast_expression "(code *)PTR_snprintf_00022080" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2)" ( identifier , number_literal , (binary_expression "PTR_00022044 + 0x180c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);" (assignment_expression "iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0)" identifier = (call_expression "(*(code *)PTR_open_000220a0)(auStack_1014,0)" (parenthesized_expression "(*(code *)PTR_open_000220a0)" ( (pointer_expression "*(code *)PTR_open_000220a0" * (cast_expression "(code *)PTR_open_000220a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_1014,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n    puVar2 = (undefined *)0x0;\n  }" { (expression_statement "puVar2 = (undefined *)0x0;" (assignment_expression "puVar2 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" else (compound_statement "{\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);" (assignment_expression "iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80)" identifier = (call_expression "(*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80)" (parenthesized_expression "(*(code *)PTR_read_000220d0)" ( (pointer_expression "*(code *)PTR_read_000220d0" * (cast_expression "(code *)PTR_read_000220d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1,PTR_DAT_00022038 + 0x20f0,0x80)" ( identifier , (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_close_00022070)(iVar1);" (call_expression "(*(code *)PTR_close_00022070)(iVar1)" (parenthesized_expression "(*(code *)PTR_close_00022070)" ( (pointer_expression "*(code *)PTR_close_00022070" * (cast_expression "(code *)PTR_close_00022070" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "iVar1 = iVar3 + -1;" (assignment_expression "iVar1 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }" { (labeled_statement "LAB_00010ce0:\n      puVar2 = (undefined *)0x0;" statement_identifier : (expression_statement "puVar2 = (undefined *)0x0;" (assignment_expression "puVar2 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }" { (expression_statement "puVar2 = PTR_DAT_00022038 + 0x20f0;" (assignment_expression "puVar2 = PTR_DAT_00022038 + 0x20f0" identifier = (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal)) ;) })) }) (else_clause "else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }" else (compound_statement "{\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_00022064)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_00022064)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_00022064)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_00022064" * (cast_expression "(code *)PTR___ctype_b_loc_00022064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;" (assignment_expression "puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0" identifier = (binary_expression "PTR_DAT_00022038 + iVar3 + 0x20f0" (binary_expression "PTR_DAT_00022038 + iVar3" identifier + identifier) + number_literal)) ;) (do_statement "do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);" do (compound_statement "{\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      }" { (if_statement "if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;" if (parenthesized_expression "((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar4 + (char)puVar2[-1] * 2)" * (cast_expression "(ushort *)(*piVar4 + (char)puVar2[-1] * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + (char)puVar2[-1] * 2)" ( (binary_expression "*piVar4 + (char)puVar2[-1] * 2" (pointer_expression "*piVar4" * identifier) + (binary_expression "(char)puVar2[-1] * 2" (cast_expression "(char)puVar2[-1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar2[-1]" identifier [ number_literal ])) * number_literal)) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00010ce0;" goto statement_identifier ;)) (expression_statement "puVar2[-1] = 0;" (assignment_expression "puVar2[-1] = 0" (subscript_expression "puVar2[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "puVar2 = puVar2 + -1;" (assignment_expression "puVar2 = puVar2 + -1" identifier = (binary_expression "puVar2 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (expression_statement "puVar2 = PTR_DAT_00022038 + 0x20f0;" (assignment_expression "puVar2 = PTR_DAT_00022038 + 0x20f0" identifier = (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal)) ;) }))) }))) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_000220c0)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_000220c0" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000220c0" * (cast_expression "(int *)PTR___stack_chk_guard_000220c0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar2;\n  }" { (return_statement "return puVar2;" return identifier ;) })) (expression_statement "iVar1 = local_14;" (assignment_expression "iVar1 = local_14" identifier = identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_fail_000220bc;" (assignment_expression "puVar2 = PTR___stack_chk_fail_000220bc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000220bc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000220bc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000220bc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000220bc" * (cast_expression "(code *)PTR___stack_chk_fail_000220bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (do_statement "do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);" do (compound_statement "{\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  }" { (do_statement "do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);" do (compound_statement "{\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    }" { (expression_statement "iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);" (assignment_expression "iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1)" identifier = (call_expression "(**(code **)(puVar2 + 0x11378))(iVar1)" (parenthesized_expression "(**(code **)(puVar2 + 0x11378))" ( (pointer_expression "**(code **)(puVar2 + 0x11378)" * (pointer_expression "*(code **)(puVar2 + 0x11378)" * (cast_expression "(code **)(puVar2 + 0x11378)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x11378)" ( (binary_expression "puVar2 + 0x11378" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        return (undefined *)0x0;\n      }" { (return_statement "return (undefined *)0x0;" return (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();" (assignment_expression "piVar4 = (int *)(**(code **)(puVar2 + 0x11364))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + 0x11364))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + 0x11364))()" (parenthesized_expression "(**(code **)(puVar2 + 0x11364))" ( (pointer_expression "**(code **)(puVar2 + 0x11364)" * (pointer_expression "*(code **)(puVar2 + 0x11364)" * (cast_expression "(code **)(puVar2 + 0x11364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x11364)" ( (binary_expression "puVar2 + 0x11364" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0)" ( (binary_expression "(*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8)" ( (binary_expression "*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8" (pointer_expression "*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2)" * (cast_expression "(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + *(char *)(iVar3 + 0xb) * 2)" ( (binary_expression "*piVar4 + *(char *)(iVar3 + 0xb) * 2" (pointer_expression "*piVar4" * identifier) + (binary_expression "*(char *)(iVar3 + 0xb) * 2" (pointer_expression "*(char *)(iVar3 + 0xb)" * (cast_expression "(char *)(iVar3 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xb)" ( (binary_expression "iVar3 + 0xb" identifier + number_literal) )))) * number_literal)) )))) & number_literal) )) == number_literal) )) ;) (expression_statement "iVar3 = iVar3 + 0xb;" (assignment_expression "iVar3 = iVar3 + 0xb" identifier = (binary_expression "iVar3 + 0xb" identifier + number_literal)) ;) (expression_statement "iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);" (assignment_expression "iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a)" identifier = (call_expression "(**(code **)(puVar2 + 0x11398))(iVar3,0x3a)" (parenthesized_expression "(**(code **)(puVar2 + 0x11398))" ( (pointer_expression "**(code **)(puVar2 + 0x11398)" * (pointer_expression "*(code **)(puVar2 + 0x11398)" * (cast_expression "(code **)(puVar2 + 0x11398)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x11398)" ( (binary_expression "puVar2 + 0x11398" identifier + number_literal) ))))) )) (argument_list "(iVar3,0x3a)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (expression_statement "(**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);" (call_expression "(**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110)" (parenthesized_expression "(**(code **)(puVar2 + 0x11384))" ( (pointer_expression "**(code **)(puVar2 + 0x11384)" * (pointer_expression "*(code **)(puVar2 + 0x11384)" * (cast_expression "(code **)(puVar2 + 0x11384)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x11384)" ( (binary_expression "puVar2 + 0x11384" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) , number_literal , number_literal ))) ;) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1828" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }" { (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" identifier = (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" ( (pointer_expression "**(code **)(puVar2 + 0x1139c)" * (pointer_expression "*(code **)(puVar2 + 0x1139c)" * (cast_expression "(code **)(puVar2 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x1139c)" ( (binary_expression "puVar2 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(iVar1,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174)" * (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1830" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }" { (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" identifier = (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" ( (pointer_expression "**(code **)(puVar2 + 0x1139c)" * (pointer_expression "*(code **)(puVar2 + 0x1139c)" * (cast_expression "(code **)(puVar2 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x1139c)" ( (binary_expression "puVar2 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(iVar1,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178)" * (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2178)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2178" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1838" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }" { (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" identifier = (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" ( (pointer_expression "**(code **)(puVar2 + 0x1139c)" * (pointer_expression "*(code **)(puVar2 + 0x1139c)" * (cast_expression "(code **)(puVar2 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x1139c)" ( (binary_expression "puVar2 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(iVar1,0,0x10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c)" * (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x217c)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x217c" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1844" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }" { (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" identifier = (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" ( (pointer_expression "**(code **)(puVar2 + 0x1139c)" * (pointer_expression "*(code **)(puVar2 + 0x1139c)" * (cast_expression "(code **)(puVar2 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x1139c)" ( (binary_expression "puVar2 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(iVar1,0,0x10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180)" * (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2180)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2180" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1850" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }" { (expression_statement "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);" (call_expression "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1)" (parenthesized_expression "(**(code **)(puVar2 + 0x113b0))" ( (pointer_expression "**(code **)(puVar2 + 0x113b0)" * (pointer_expression "*(code **)(puVar2 + 0x113b0)" * (cast_expression "(code **)(puVar2 + 0x113b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x113b0)" ( (binary_expression "puVar2 + 0x113b0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2184" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1860" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }" { (expression_statement "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);" (call_expression "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1)" (parenthesized_expression "(**(code **)(puVar2 + 0x113b0))" ( (pointer_expression "**(code **)(puVar2 + 0x113b0)" * (pointer_expression "*(code **)(puVar2 + 0x113b0)" * (cast_expression "(code **)(puVar2 + 0x113b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x113b0)" ( (binary_expression "puVar2 + 0x113b0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2204" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "puVar7 = (undefined *)0x0;" (assignment_expression "puVar7 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }" if (parenthesized_expression "((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0))" ( (binary_expression "(((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)" (parenthesized_expression "(((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0))" ( (binary_expression "((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)" (parenthesized_expression "((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0))" ( (binary_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)" (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174)" * (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178)" * (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x2178)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2178)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2178" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c)" * (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x217c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x217c)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x217c" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180)" * (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x2180)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2180)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2180" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }" { (expression_statement "puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);" (assignment_expression "puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174)" identifier = (cast_expression "(undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return puVar7;" return identifier ;) })))
(translation_unit "char * sysfs_attr(char *dev,char *attr)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  char path [4096];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(path,0xfff,PTR_00022044 + 0x180c,dev,attr);\n  iVar2 = (*(code *)PTR_open_000220a0)(path,0);\n  if (iVar2 < 0) {\n    pcVar3 = (char *)0x0;\n  }\n  else {\n    iVar4 = (*(code *)PTR_read_000220d0)(iVar2,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar2);\n    iVar2 = iVar4 + -1;\n    if (iVar2 < 1) {\nLAB_00010ce0:\n      pcVar3 = (char *)0x0;\n      if (-1 < iVar2) {\n        pcVar3 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      } while (iVar2 != 0);\n      pcVar3 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (iVar1 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return pcVar3;\n  }\n  puVar8 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar2 = (**(code **)(puVar8 + 0x11378))(iVar1);\n      if (iVar2 == 0) {\n        return (char *)0x0;\n      }\n      piVar5 = (int *)(**(code **)(puVar8 + 0x11364))();\n    } while ((*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8) == 0);\n    pcVar3 = (char *)(iVar2 + 0xb);\n    iVar2 = (**(code **)(puVar8 + 0x11398))(pcVar3,0x3a);\n  } while (iVar2 != 0);\n  (**(code **)(puVar8 + 0x11384))(*(int *)(puVar8 + 0x11338) + 0x2174,0,0x110);\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1828));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2174) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1830));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2178) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1838));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x217c) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1844));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2180) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1850));\n  if (pcVar6 != (char *)0x0) {\n    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2184,pcVar6);\n  }\n  pcVar3 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1860));\n  if (pcVar3 != (char *)0x0) {\n    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2204,pcVar3);\n  }\n  pcVar3 = (char *)0x0;\n  if ((((*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2180) != 0)) {\n    pcVar3 = (char *)(*(int *)(puVar8 + 0x11338) + 0x2174);\n  }\n  return pcVar3;\n}\n\n" (function_definition "char * sysfs_attr(char *dev,char *attr)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  char path [4096];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(path,0xfff,PTR_00022044 + 0x180c,dev,attr);\n  iVar2 = (*(code *)PTR_open_000220a0)(path,0);\n  if (iVar2 < 0) {\n    pcVar3 = (char *)0x0;\n  }\n  else {\n    iVar4 = (*(code *)PTR_read_000220d0)(iVar2,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar2);\n    iVar2 = iVar4 + -1;\n    if (iVar2 < 1) {\nLAB_00010ce0:\n      pcVar3 = (char *)0x0;\n      if (-1 < iVar2) {\n        pcVar3 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      } while (iVar2 != 0);\n      pcVar3 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (iVar1 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return pcVar3;\n  }\n  puVar8 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar2 = (**(code **)(puVar8 + 0x11378))(iVar1);\n      if (iVar2 == 0) {\n        return (char *)0x0;\n      }\n      piVar5 = (int *)(**(code **)(puVar8 + 0x11364))();\n    } while ((*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8) == 0);\n    pcVar3 = (char *)(iVar2 + 0xb);\n    iVar2 = (**(code **)(puVar8 + 0x11398))(pcVar3,0x3a);\n  } while (iVar2 != 0);\n  (**(code **)(puVar8 + 0x11384))(*(int *)(puVar8 + 0x11338) + 0x2174,0,0x110);\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1828));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2174) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1830));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2178) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1838));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x217c) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1844));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2180) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1850));\n  if (pcVar6 != (char *)0x0) {\n    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2184,pcVar6);\n  }\n  pcVar3 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1860));\n  if (pcVar3 != (char *)0x0) {\n    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2204,pcVar3);\n  }\n  pcVar3 = (char *)0x0;\n  if ((((*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2180) != 0)) {\n    pcVar3 = (char *)(*(int *)(puVar8 + 0x11338) + 0x2174);\n  }\n  return pcVar3;\n}" primitive_type (pointer_declarator "* sysfs_attr(char *dev,char *attr)" * (function_declarator "sysfs_attr(char *dev,char *attr)" identifier (parameter_list "(char *dev,char *attr)" ( (parameter_declaration "char *dev" primitive_type (pointer_declarator "*dev" * identifier)) , (parameter_declaration "char *attr" primitive_type (pointer_declarator "*attr" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  int iVar4;\n  int *piVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  undefined *puVar8;\n  char path [4096];\n  \n  iVar1 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(path,0xfff,PTR_00022044 + 0x180c,dev,attr);\n  iVar2 = (*(code *)PTR_open_000220a0)(path,0);\n  if (iVar2 < 0) {\n    pcVar3 = (char *)0x0;\n  }\n  else {\n    iVar4 = (*(code *)PTR_read_000220d0)(iVar2,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar2);\n    iVar2 = iVar4 + -1;\n    if (iVar2 < 1) {\nLAB_00010ce0:\n      pcVar3 = (char *)0x0;\n      if (-1 < iVar2) {\n        pcVar3 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      } while (iVar2 != 0);\n      pcVar3 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (iVar1 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return pcVar3;\n  }\n  puVar8 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar2 = (**(code **)(puVar8 + 0x11378))(iVar1);\n      if (iVar2 == 0) {\n        return (char *)0x0;\n      }\n      piVar5 = (int *)(**(code **)(puVar8 + 0x11364))();\n    } while ((*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8) == 0);\n    pcVar3 = (char *)(iVar2 + 0xb);\n    iVar2 = (**(code **)(puVar8 + 0x11398))(pcVar3,0x3a);\n  } while (iVar2 != 0);\n  (**(code **)(puVar8 + 0x11384))(*(int *)(puVar8 + 0x11338) + 0x2174,0,0x110);\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1828));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2174) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1830));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2178) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1838));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x217c) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1844));\n  if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2180) = uVar7;\n  }\n  pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1850));\n  if (pcVar6 != (char *)0x0) {\n    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2184,pcVar6);\n  }\n  pcVar3 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1860));\n  if (pcVar3 != (char *)0x0) {\n    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2204,pcVar3);\n  }\n  pcVar3 = (char *)0x0;\n  if ((((*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2180) != 0)) {\n    pcVar3 = (char *)(*(int *)(puVar8 + 0x11338) + 0x2174);\n  }\n  return pcVar3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char path [4096];" primitive_type (array_declarator "path [4096]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)PTR___stack_chk_guard_000220c0;" (assignment_expression "iVar1 = *(int *)PTR___stack_chk_guard_000220c0" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000220c0" * (cast_expression "(int *)PTR___stack_chk_guard_000220c0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);" (call_expression "(*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81)" (parenthesized_expression "(*(code *)PTR_memset_00022084)" ( (pointer_expression "*(code *)PTR_memset_00022084" * (cast_expression "(code *)PTR_memset_00022084" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_00022038 + 0x20f0,0,0x81)" ( (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_snprintf_00022080)(path,0xfff,PTR_00022044 + 0x180c,dev,attr);" (call_expression "(*(code *)PTR_snprintf_00022080)(path,0xfff,PTR_00022044 + 0x180c,dev,attr)" (parenthesized_expression "(*(code *)PTR_snprintf_00022080)" ( (pointer_expression "*(code *)PTR_snprintf_00022080" * (cast_expression "(code *)PTR_snprintf_00022080" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(path,0xfff,PTR_00022044 + 0x180c,dev,attr)" ( identifier , number_literal , (binary_expression "PTR_00022044 + 0x180c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar2 = (*(code *)PTR_open_000220a0)(path,0);" (assignment_expression "iVar2 = (*(code *)PTR_open_000220a0)(path,0)" identifier = (call_expression "(*(code *)PTR_open_000220a0)(path,0)" (parenthesized_expression "(*(code *)PTR_open_000220a0)" ( (pointer_expression "*(code *)PTR_open_000220a0" * (cast_expression "(code *)PTR_open_000220a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(path,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 < 0) {\n    pcVar3 = (char *)0x0;\n  }\n  else {\n    iVar4 = (*(code *)PTR_read_000220d0)(iVar2,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar2);\n    iVar2 = iVar4 + -1;\n    if (iVar2 < 1) {\nLAB_00010ce0:\n      pcVar3 = (char *)0x0;\n      if (-1 < iVar2) {\n        pcVar3 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      } while (iVar2 != 0);\n      pcVar3 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n    pcVar3 = (char *)0x0;\n  }" { (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar4 = (*(code *)PTR_read_000220d0)(iVar2,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar2);\n    iVar2 = iVar4 + -1;\n    if (iVar2 < 1) {\nLAB_00010ce0:\n      pcVar3 = (char *)0x0;\n      if (-1 < iVar2) {\n        pcVar3 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      } while (iVar2 != 0);\n      pcVar3 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" else (compound_statement "{\n    iVar4 = (*(code *)PTR_read_000220d0)(iVar2,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar2);\n    iVar2 = iVar4 + -1;\n    if (iVar2 < 1) {\nLAB_00010ce0:\n      pcVar3 = (char *)0x0;\n      if (-1 < iVar2) {\n        pcVar3 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      } while (iVar2 != 0);\n      pcVar3 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" { (expression_statement "iVar4 = (*(code *)PTR_read_000220d0)(iVar2,PTR_DAT_00022038 + 0x20f0,0x80);" (assignment_expression "iVar4 = (*(code *)PTR_read_000220d0)(iVar2,PTR_DAT_00022038 + 0x20f0,0x80)" identifier = (call_expression "(*(code *)PTR_read_000220d0)(iVar2,PTR_DAT_00022038 + 0x20f0,0x80)" (parenthesized_expression "(*(code *)PTR_read_000220d0)" ( (pointer_expression "*(code *)PTR_read_000220d0" * (cast_expression "(code *)PTR_read_000220d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2,PTR_DAT_00022038 + 0x20f0,0x80)" ( identifier , (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_close_00022070)(iVar2);" (call_expression "(*(code *)PTR_close_00022070)(iVar2)" (parenthesized_expression "(*(code *)PTR_close_00022070)" ( (pointer_expression "*(code *)PTR_close_00022070" * (cast_expression "(code *)PTR_close_00022070" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "iVar2 = iVar4 + -1;" (assignment_expression "iVar2 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (if_statement "if (iVar2 < 1) {\nLAB_00010ce0:\n      pcVar3 = (char *)0x0;\n      if (-1 < iVar2) {\n        pcVar3 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      } while (iVar2 != 0);\n      pcVar3 = PTR_DAT_00022038 + 0x20f0;\n    }" if (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00010ce0:\n      pcVar3 = (char *)0x0;\n      if (-1 < iVar2) {\n        pcVar3 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }" { (labeled_statement "LAB_00010ce0:\n      pcVar3 = (char *)0x0;" statement_identifier : (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (-1 < iVar2) {\n        pcVar3 = PTR_DAT_00022038 + 0x20f0;\n      }" if (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) (compound_statement "{\n        pcVar3 = PTR_DAT_00022038 + 0x20f0;\n      }" { (expression_statement "pcVar3 = PTR_DAT_00022038 + 0x20f0;" (assignment_expression "pcVar3 = PTR_DAT_00022038 + 0x20f0" identifier = (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal)) ;) })) }) (else_clause "else {\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      } while (iVar2 != 0);\n      pcVar3 = PTR_DAT_00022038 + 0x20f0;\n    }" else (compound_statement "{\n      piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      } while (iVar2 != 0);\n      pcVar3 = PTR_DAT_00022038 + 0x20f0;\n    }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_b_loc_00022064)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_00022064)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_00022064)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_00022064)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_00022064" * (cast_expression "(code *)PTR___ctype_b_loc_00022064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0;" (assignment_expression "puVar8 = PTR_DAT_00022038 + iVar4 + 0x20f0" identifier = (binary_expression "PTR_DAT_00022038 + iVar4 + 0x20f0" (binary_expression "PTR_DAT_00022038 + iVar4" identifier + identifier) + number_literal)) ;) (do_statement "do {\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      } while (iVar2 != 0);" do (compound_statement "{\n        if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar8[-1] = 0;\n        iVar2 = iVar2 + -1;\n        puVar8 = puVar8 + -1;\n      }" { (if_statement "if ((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;" if (parenthesized_expression "((*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar5 + (char)puVar8[-1] * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar5 + (char)puVar8[-1] * 2)" * (cast_expression "(ushort *)(*piVar5 + (char)puVar8[-1] * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + (char)puVar8[-1] * 2)" ( (binary_expression "*piVar5 + (char)puVar8[-1] * 2" (pointer_expression "*piVar5" * identifier) + (binary_expression "(char)puVar8[-1] * 2" (cast_expression "(char)puVar8[-1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar8[-1]" identifier [ number_literal ])) * number_literal)) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00010ce0;" goto statement_identifier ;)) (expression_statement "puVar8[-1] = 0;" (assignment_expression "puVar8[-1] = 0" (subscript_expression "puVar8[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + -1;" (assignment_expression "puVar8 = puVar8 + -1" identifier = (binary_expression "puVar8 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) ;) (expression_statement "pcVar3 = PTR_DAT_00022038 + 0x20f0;" (assignment_expression "pcVar3 = PTR_DAT_00022038 + 0x20f0" identifier = (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal)) ;) }))) }))) (if_statement "if (iVar1 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return pcVar3;\n  }" if (parenthesized_expression "(iVar1 == *(int *)PTR___stack_chk_guard_000220c0)" ( (binary_expression "iVar1 == *(int *)PTR___stack_chk_guard_000220c0" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000220c0" * (cast_expression "(int *)PTR___stack_chk_guard_000220c0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar3;\n  }" { (return_statement "return pcVar3;" return identifier ;) })) (expression_statement "puVar8 = PTR___stack_chk_fail_000220bc;" (assignment_expression "puVar8 = PTR___stack_chk_fail_000220bc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000220bc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000220bc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000220bc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000220bc" * (cast_expression "(code *)PTR___stack_chk_fail_000220bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (do_statement "do {\n    do {\n      iVar2 = (**(code **)(puVar8 + 0x11378))(iVar1);\n      if (iVar2 == 0) {\n        return (char *)0x0;\n      }\n      piVar5 = (int *)(**(code **)(puVar8 + 0x11364))();\n    } while ((*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8) == 0);\n    pcVar3 = (char *)(iVar2 + 0xb);\n    iVar2 = (**(code **)(puVar8 + 0x11398))(pcVar3,0x3a);\n  } while (iVar2 != 0);" do (compound_statement "{\n    do {\n      iVar2 = (**(code **)(puVar8 + 0x11378))(iVar1);\n      if (iVar2 == 0) {\n        return (char *)0x0;\n      }\n      piVar5 = (int *)(**(code **)(puVar8 + 0x11364))();\n    } while ((*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8) == 0);\n    pcVar3 = (char *)(iVar2 + 0xb);\n    iVar2 = (**(code **)(puVar8 + 0x11398))(pcVar3,0x3a);\n  }" { (do_statement "do {\n      iVar2 = (**(code **)(puVar8 + 0x11378))(iVar1);\n      if (iVar2 == 0) {\n        return (char *)0x0;\n      }\n      piVar5 = (int *)(**(code **)(puVar8 + 0x11364))();\n    } while ((*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8) == 0);" do (compound_statement "{\n      iVar2 = (**(code **)(puVar8 + 0x11378))(iVar1);\n      if (iVar2 == 0) {\n        return (char *)0x0;\n      }\n      piVar5 = (int *)(**(code **)(puVar8 + 0x11364))();\n    }" { (expression_statement "iVar2 = (**(code **)(puVar8 + 0x11378))(iVar1);" (assignment_expression "iVar2 = (**(code **)(puVar8 + 0x11378))(iVar1)" identifier = (call_expression "(**(code **)(puVar8 + 0x11378))(iVar1)" (parenthesized_expression "(**(code **)(puVar8 + 0x11378))" ( (pointer_expression "**(code **)(puVar8 + 0x11378)" * (pointer_expression "*(code **)(puVar8 + 0x11378)" * (cast_expression "(code **)(puVar8 + 0x11378)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x11378)" ( (binary_expression "puVar8 + 0x11378" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar2 == 0) {\n        return (char *)0x0;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        return (char *)0x0;\n      }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "piVar5 = (int *)(**(code **)(puVar8 + 0x11364))();" (assignment_expression "piVar5 = (int *)(**(code **)(puVar8 + 0x11364))()" identifier = (cast_expression "(int *)(**(code **)(puVar8 + 0x11364))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar8 + 0x11364))()" (parenthesized_expression "(**(code **)(puVar8 + 0x11364))" ( (pointer_expression "**(code **)(puVar8 + 0x11364)" * (pointer_expression "*(code **)(puVar8 + 0x11364)" * (cast_expression "(code **)(puVar8 + 0x11364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x11364)" ( (binary_expression "puVar8 + 0x11364" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "((*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8) == 0)" ( (binary_expression "(*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8)" ( (binary_expression "*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2) & 8" (pointer_expression "*(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2)" * (cast_expression "(ushort *)(*piVar5 + *(char *)(iVar2 + 0xb) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + *(char *)(iVar2 + 0xb) * 2)" ( (binary_expression "*piVar5 + *(char *)(iVar2 + 0xb) * 2" (pointer_expression "*piVar5" * identifier) + (binary_expression "*(char *)(iVar2 + 0xb) * 2" (pointer_expression "*(char *)(iVar2 + 0xb)" * (cast_expression "(char *)(iVar2 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xb)" ( (binary_expression "iVar2 + 0xb" identifier + number_literal) )))) * number_literal)) )))) & number_literal) )) == number_literal) )) ;) (expression_statement "pcVar3 = (char *)(iVar2 + 0xb);" (assignment_expression "pcVar3 = (char *)(iVar2 + 0xb)" identifier = (cast_expression "(char *)(iVar2 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xb)" ( (binary_expression "iVar2 + 0xb" identifier + number_literal) )))) ;) (expression_statement "iVar2 = (**(code **)(puVar8 + 0x11398))(pcVar3,0x3a);" (assignment_expression "iVar2 = (**(code **)(puVar8 + 0x11398))(pcVar3,0x3a)" identifier = (call_expression "(**(code **)(puVar8 + 0x11398))(pcVar3,0x3a)" (parenthesized_expression "(**(code **)(puVar8 + 0x11398))" ( (pointer_expression "**(code **)(puVar8 + 0x11398)" * (pointer_expression "*(code **)(puVar8 + 0x11398)" * (cast_expression "(code **)(puVar8 + 0x11398)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x11398)" ( (binary_expression "puVar8 + 0x11398" identifier + number_literal) ))))) )) (argument_list "(pcVar3,0x3a)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) ;) (expression_statement "(**(code **)(puVar8 + 0x11384))(*(int *)(puVar8 + 0x11338) + 0x2174,0,0x110);" (call_expression "(**(code **)(puVar8 + 0x11384))(*(int *)(puVar8 + 0x11338) + 0x2174,0,0x110)" (parenthesized_expression "(**(code **)(puVar8 + 0x11384))" ( (pointer_expression "**(code **)(puVar8 + 0x11384)" * (pointer_expression "*(code **)(puVar8 + 0x11384)" * (cast_expression "(code **)(puVar8 + 0x11384)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x11384)" ( (binary_expression "puVar8 + 0x11384" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar8 + 0x11338) + 0x2174,0,0x110)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) , number_literal , number_literal ))) ;) (expression_statement "pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1828));" (assignment_expression "pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1828))" identifier = (call_expression "sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1828))" identifier (argument_list "(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1828))" ( identifier , (cast_expression "(char *)(*(int *)(puVar8 + 0x11344) + 0x1828)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11344) + 0x1828)" ( (binary_expression "*(int *)(puVar8 + 0x11344) + 0x1828" (pointer_expression "*(int *)(puVar8 + 0x11344)" * (cast_expression "(int *)(puVar8 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11344)" ( (binary_expression "puVar8 + 0x11344" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2174) = uVar7;\n  }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2174) = uVar7;\n  }" { (expression_statement "uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);" (assignment_expression "uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10)" identifier = (call_expression "(**(code **)(puVar8 + 0x1139c))(pcVar6,0,10)" (parenthesized_expression "(**(code **)(puVar8 + 0x1139c))" ( (pointer_expression "**(code **)(puVar8 + 0x1139c)" * (pointer_expression "*(code **)(puVar8 + 0x1139c)" * (cast_expression "(code **)(puVar8 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x1139c)" ( (binary_expression "puVar8 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(pcVar6,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2174) = uVar7;" (assignment_expression "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2174) = uVar7" (pointer_expression "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2174)" * (cast_expression "(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2174)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11338) + 0x2174)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1830));" (assignment_expression "pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1830))" identifier = (call_expression "sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1830))" identifier (argument_list "(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1830))" ( identifier , (cast_expression "(char *)(*(int *)(puVar8 + 0x11344) + 0x1830)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11344) + 0x1830)" ( (binary_expression "*(int *)(puVar8 + 0x11344) + 0x1830" (pointer_expression "*(int *)(puVar8 + 0x11344)" * (cast_expression "(int *)(puVar8 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11344)" ( (binary_expression "puVar8 + 0x11344" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2178) = uVar7;\n  }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2178) = uVar7;\n  }" { (expression_statement "uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10);" (assignment_expression "uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,10)" identifier = (call_expression "(**(code **)(puVar8 + 0x1139c))(pcVar6,0,10)" (parenthesized_expression "(**(code **)(puVar8 + 0x1139c))" ( (pointer_expression "**(code **)(puVar8 + 0x1139c)" * (pointer_expression "*(code **)(puVar8 + 0x1139c)" * (cast_expression "(code **)(puVar8 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x1139c)" ( (binary_expression "puVar8 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(pcVar6,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2178) = uVar7;" (assignment_expression "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2178) = uVar7" (pointer_expression "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2178)" * (cast_expression "(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2178)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11338) + 0x2178)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x2178" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1838));" (assignment_expression "pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1838))" identifier = (call_expression "sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1838))" identifier (argument_list "(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1838))" ( identifier , (cast_expression "(char *)(*(int *)(puVar8 + 0x11344) + 0x1838)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11344) + 0x1838)" ( (binary_expression "*(int *)(puVar8 + 0x11344) + 0x1838" (pointer_expression "*(int *)(puVar8 + 0x11344)" * (cast_expression "(int *)(puVar8 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11344)" ( (binary_expression "puVar8 + 0x11344" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x217c) = uVar7;\n  }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x217c) = uVar7;\n  }" { (expression_statement "uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);" (assignment_expression "uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10)" identifier = (call_expression "(**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10)" (parenthesized_expression "(**(code **)(puVar8 + 0x1139c))" ( (pointer_expression "**(code **)(puVar8 + 0x1139c)" * (pointer_expression "*(code **)(puVar8 + 0x1139c)" * (cast_expression "(code **)(puVar8 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x1139c)" ( (binary_expression "puVar8 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(pcVar6,0,0x10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x217c) = uVar7;" (assignment_expression "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x217c) = uVar7" (pointer_expression "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x217c)" * (cast_expression "(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x217c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11338) + 0x217c)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x217c" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1844));" (assignment_expression "pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1844))" identifier = (call_expression "sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1844))" identifier (argument_list "(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1844))" ( identifier , (cast_expression "(char *)(*(int *)(puVar8 + 0x11344) + 0x1844)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11344) + 0x1844)" ( (binary_expression "*(int *)(puVar8 + 0x11344) + 0x1844" (pointer_expression "*(int *)(puVar8 + 0x11344)" * (cast_expression "(int *)(puVar8 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11344)" ( (binary_expression "puVar8 + 0x11344" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2180) = uVar7;\n  }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);\n    *(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2180) = uVar7;\n  }" { (expression_statement "uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10);" (assignment_expression "uVar7 = (**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10)" identifier = (call_expression "(**(code **)(puVar8 + 0x1139c))(pcVar6,0,0x10)" (parenthesized_expression "(**(code **)(puVar8 + 0x1139c))" ( (pointer_expression "**(code **)(puVar8 + 0x1139c)" * (pointer_expression "*(code **)(puVar8 + 0x1139c)" * (cast_expression "(code **)(puVar8 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x1139c)" ( (binary_expression "puVar8 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(pcVar6,0,0x10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2180) = uVar7;" (assignment_expression "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2180) = uVar7" (pointer_expression "*(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2180)" * (cast_expression "(undefined4 *)(*(int *)(puVar8 + 0x11338) + 0x2180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11338) + 0x2180)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x2180" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1850));" (assignment_expression "pcVar6 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1850))" identifier = (call_expression "sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1850))" identifier (argument_list "(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1850))" ( identifier , (cast_expression "(char *)(*(int *)(puVar8 + 0x11344) + 0x1850)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11344) + 0x1850)" ( (binary_expression "*(int *)(puVar8 + 0x11344) + 0x1850" (pointer_expression "*(int *)(puVar8 + 0x11344)" * (cast_expression "(int *)(puVar8 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11344)" ( (binary_expression "puVar8 + 0x11344" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2184,pcVar6);\n  }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2184,pcVar6);\n  }" { (expression_statement "(**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2184,pcVar6);" (call_expression "(**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2184,pcVar6)" (parenthesized_expression "(**(code **)(puVar8 + 0x113b0))" ( (pointer_expression "**(code **)(puVar8 + 0x113b0)" * (pointer_expression "*(code **)(puVar8 + 0x113b0)" * (cast_expression "(code **)(puVar8 + 0x113b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x113b0)" ( (binary_expression "puVar8 + 0x113b0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar8 + 0x11338) + 0x2184,pcVar6)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x2184" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "pcVar3 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1860));" (assignment_expression "pcVar3 = sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1860))" identifier = (call_expression "sysfs_attr(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1860))" identifier (argument_list "(pcVar3,(char *)(*(int *)(puVar8 + 0x11344) + 0x1860))" ( identifier , (cast_expression "(char *)(*(int *)(puVar8 + 0x11344) + 0x1860)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11344) + 0x1860)" ( (binary_expression "*(int *)(puVar8 + 0x11344) + 0x1860" (pointer_expression "*(int *)(puVar8 + 0x11344)" * (cast_expression "(int *)(puVar8 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11344)" ( (binary_expression "puVar8 + 0x11344" identifier + number_literal) )))) + number_literal) ))) )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2204,pcVar3);\n  }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2204,pcVar3);\n  }" { (expression_statement "(**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2204,pcVar3);" (call_expression "(**(code **)(puVar8 + 0x113b0))(*(int *)(puVar8 + 0x11338) + 0x2204,pcVar3)" (parenthesized_expression "(**(code **)(puVar8 + 0x113b0))" ( (pointer_expression "**(code **)(puVar8 + 0x113b0)" * (pointer_expression "*(code **)(puVar8 + 0x113b0)" * (cast_expression "(code **)(puVar8 + 0x113b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0x113b0)" ( (binary_expression "puVar8 + 0x113b0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar8 + 0x11338) + 0x2204,pcVar3)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x2204" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "pcVar3 = (char *)0x0;" (assignment_expression "pcVar3 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((((*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2180) != 0)) {\n    pcVar3 = (char *)(*(int *)(puVar8 + 0x11338) + 0x2174);\n  }" if (parenthesized_expression "((((*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2180) != 0))" ( (binary_expression "(((*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2180) != 0)" (parenthesized_expression "(((*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0))" ( (binary_expression "((*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0)" (parenthesized_expression "((*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0))" ( (binary_expression "(*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)" (parenthesized_expression "(*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174) != 0" (pointer_expression "*(int *)(*(int *)(puVar8 + 0x11338) + 0x2174)" * (cast_expression "(int *)(*(int *)(puVar8 + 0x11338) + 0x2174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11338) + 0x2174)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178) != 0" (pointer_expression "*(int *)(*(int *)(puVar8 + 0x11338) + 0x2178)" * (cast_expression "(int *)(*(int *)(puVar8 + 0x11338) + 0x2178)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11338) + 0x2178)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x2178" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c) != 0" (pointer_expression "*(int *)(*(int *)(puVar8 + 0x11338) + 0x217c)" * (cast_expression "(int *)(*(int *)(puVar8 + 0x11338) + 0x217c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11338) + 0x217c)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x217c" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(*(int *)(puVar8 + 0x11338) + 0x2180) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar8 + 0x11338) + 0x2180) != 0" (pointer_expression "*(int *)(*(int *)(puVar8 + 0x11338) + 0x2180)" * (cast_expression "(int *)(*(int *)(puVar8 + 0x11338) + 0x2180)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11338) + 0x2180)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x2180" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    pcVar3 = (char *)(*(int *)(puVar8 + 0x11338) + 0x2174);\n  }" { (expression_statement "pcVar3 = (char *)(*(int *)(puVar8 + 0x11338) + 0x2174);" (assignment_expression "pcVar3 = (char *)(*(int *)(puVar8 + 0x11338) + 0x2174)" identifier = (cast_expression "(char *)(*(int *)(puVar8 + 0x11338) + 0x2174)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0x11338) + 0x2174)" ( (binary_expression "*(int *)(puVar8 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar8 + 0x11338)" * (cast_expression "(int *)(puVar8 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0x11338)" ( (binary_expression "puVar8 + 0x11338" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return pcVar3;" return identifier ;) })))
(translation_unit "undefined * FUN_00010b80(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined1 auStack_1014 [4096];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);\n  iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);\n  if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }\n  iVar1 = local_14;\n  puVar2 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);\n  (**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }\n  puVar7 = (undefined *)0x0;\n  if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }\n  return puVar7;\n}\n\n" (function_definition "undefined * FUN_00010b80(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined1 auStack_1014 [4096];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);\n  iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);\n  if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }\n  iVar1 = local_14;\n  puVar2 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);\n  (**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }\n  puVar7 = (undefined *)0x0;\n  if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }\n  return puVar7;\n}" type_identifier (pointer_declarator "* FUN_00010b80(undefined4 param_1,undefined4 param_2)" * (function_declarator "FUN_00010b80(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) )))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined1 auStack_1014 [4096];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);\n  iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);\n  if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }\n  iVar1 = local_14;\n  puVar2 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);\n  (**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }\n  puVar7 = (undefined *)0x0;\n  if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }\n  return puVar7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined1 auStack_1014 [4096];" type_identifier (array_declarator "auStack_1014 [4096]" identifier [ number_literal ]) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000220c0;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_000220c0" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000220c0" * (cast_expression "(int *)PTR___stack_chk_guard_000220c0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);" (call_expression "(*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81)" (parenthesized_expression "(*(code *)PTR_memset_00022084)" ( (pointer_expression "*(code *)PTR_memset_00022084" * (cast_expression "(code *)PTR_memset_00022084" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_00022038 + 0x20f0,0,0x81)" ( (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal) , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);" (call_expression "(*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2)" (parenthesized_expression "(*(code *)PTR_snprintf_00022080)" ( (pointer_expression "*(code *)PTR_snprintf_00022080" * (cast_expression "(code *)PTR_snprintf_00022080" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2)" ( identifier , number_literal , (binary_expression "PTR_00022044 + 0x180c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);" (assignment_expression "iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0)" identifier = (call_expression "(*(code *)PTR_open_000220a0)(auStack_1014,0)" (parenthesized_expression "(*(code *)PTR_open_000220a0)" ( (pointer_expression "*(code *)PTR_open_000220a0" * (cast_expression "(code *)PTR_open_000220a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_1014,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n    puVar2 = (undefined *)0x0;\n  }" { (expression_statement "puVar2 = (undefined *)0x0;" (assignment_expression "puVar2 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" else (compound_statement "{\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" { (expression_statement "iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);" (assignment_expression "iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80)" identifier = (call_expression "(*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80)" (parenthesized_expression "(*(code *)PTR_read_000220d0)" ( (pointer_expression "*(code *)PTR_read_000220d0" * (cast_expression "(code *)PTR_read_000220d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1,PTR_DAT_00022038 + 0x20f0,0x80)" ( identifier , (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal) , number_literal )))) ;) (expression_statement "(*(code *)PTR_close_00022070)(iVar1);" (call_expression "(*(code *)PTR_close_00022070)(iVar1)" (parenthesized_expression "(*(code *)PTR_close_00022070)" ( (pointer_expression "*(code *)PTR_close_00022070" * (cast_expression "(code *)PTR_close_00022070" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "iVar1 = iVar3 + -1;" (assignment_expression "iVar1 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }" { (labeled_statement "LAB_00010ce0:\n      puVar2 = (undefined *)0x0;" statement_identifier : (expression_statement "puVar2 = (undefined *)0x0;" (assignment_expression "puVar2 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }" { (expression_statement "puVar2 = PTR_DAT_00022038 + 0x20f0;" (assignment_expression "puVar2 = PTR_DAT_00022038 + 0x20f0" identifier = (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal)) ;) })) }) (else_clause "else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }" else (compound_statement "{\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }" { (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_00022064)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_00022064)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_00022064)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_00022064" * (cast_expression "(code *)PTR___ctype_b_loc_00022064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;" (assignment_expression "puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0" identifier = (binary_expression "PTR_DAT_00022038 + iVar3 + 0x20f0" (binary_expression "PTR_DAT_00022038 + iVar3" identifier + identifier) + number_literal)) ;) (do_statement "do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);" do (compound_statement "{\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      }" { (if_statement "if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;" if (parenthesized_expression "((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0)" ( (binary_expression "(*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20)" ( (binary_expression "*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar4 + (char)puVar2[-1] * 2)" * (cast_expression "(ushort *)(*piVar4 + (char)puVar2[-1] * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + (char)puVar2[-1] * 2)" ( (binary_expression "*piVar4 + (char)puVar2[-1] * 2" (pointer_expression "*piVar4" * identifier) + (binary_expression "(char)puVar2[-1] * 2" (cast_expression "(char)puVar2[-1]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar2[-1]" identifier [ number_literal ])) * number_literal)) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00010ce0;" goto statement_identifier ;)) (expression_statement "puVar2[-1] = 0;" (assignment_expression "puVar2[-1] = 0" (subscript_expression "puVar2[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) (expression_statement "puVar2 = puVar2 + -1;" (assignment_expression "puVar2 = puVar2 + -1" identifier = (binary_expression "puVar2 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (expression_statement "puVar2 = PTR_DAT_00022038 + 0x20f0;" (assignment_expression "puVar2 = PTR_DAT_00022038 + 0x20f0" identifier = (binary_expression "PTR_DAT_00022038 + 0x20f0" identifier + number_literal)) ;) }))) }))) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_000220c0)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_000220c0" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000220c0" * (cast_expression "(int *)PTR___stack_chk_guard_000220c0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return puVar2;\n  }" { (return_statement "return puVar2;" return identifier ;) })) (expression_statement "iVar1 = local_14;" (assignment_expression "iVar1 = local_14" identifier = identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_fail_000220bc;" (assignment_expression "puVar2 = PTR___stack_chk_fail_000220bc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000220bc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000220bc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000220bc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000220bc" * (cast_expression "(code *)PTR___stack_chk_fail_000220bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (do_statement "do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);" do (compound_statement "{\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  }" { (do_statement "do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);" do (compound_statement "{\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    }" { (expression_statement "iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);" (assignment_expression "iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1)" identifier = (call_expression "(**(code **)(puVar2 + 0x11378))(iVar1)" (parenthesized_expression "(**(code **)(puVar2 + 0x11378))" ( (pointer_expression "**(code **)(puVar2 + 0x11378)" * (pointer_expression "*(code **)(puVar2 + 0x11378)" * (cast_expression "(code **)(puVar2 + 0x11378)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x11378)" ( (binary_expression "puVar2 + 0x11378" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        return (undefined *)0x0;\n      }" { (return_statement "return (undefined *)0x0;" return (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();" (assignment_expression "piVar4 = (int *)(**(code **)(puVar2 + 0x11364))()" identifier = (cast_expression "(int *)(**(code **)(puVar2 + 0x11364))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar2 + 0x11364))()" (parenthesized_expression "(**(code **)(puVar2 + 0x11364))" ( (pointer_expression "**(code **)(puVar2 + 0x11364)" * (pointer_expression "*(code **)(puVar2 + 0x11364)" * (cast_expression "(code **)(puVar2 + 0x11364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x11364)" ( (binary_expression "puVar2 + 0x11364" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) }) while (parenthesized_expression "((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0)" ( (binary_expression "(*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8)" ( (binary_expression "*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8" (pointer_expression "*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2)" * (cast_expression "(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar4 + *(char *)(iVar3 + 0xb) * 2)" ( (binary_expression "*piVar4 + *(char *)(iVar3 + 0xb) * 2" (pointer_expression "*piVar4" * identifier) + (binary_expression "*(char *)(iVar3 + 0xb) * 2" (pointer_expression "*(char *)(iVar3 + 0xb)" * (cast_expression "(char *)(iVar3 + 0xb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xb)" ( (binary_expression "iVar3 + 0xb" identifier + number_literal) )))) * number_literal)) )))) & number_literal) )) == number_literal) )) ;) (expression_statement "iVar3 = iVar3 + 0xb;" (assignment_expression "iVar3 = iVar3 + 0xb" identifier = (binary_expression "iVar3 + 0xb" identifier + number_literal)) ;) (expression_statement "iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);" (assignment_expression "iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a)" identifier = (call_expression "(**(code **)(puVar2 + 0x11398))(iVar3,0x3a)" (parenthesized_expression "(**(code **)(puVar2 + 0x11398))" ( (pointer_expression "**(code **)(puVar2 + 0x11398)" * (pointer_expression "*(code **)(puVar2 + 0x11398)" * (cast_expression "(code **)(puVar2 + 0x11398)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x11398)" ( (binary_expression "puVar2 + 0x11398" identifier + number_literal) ))))) )) (argument_list "(iVar3,0x3a)" ( identifier , number_literal )))) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (expression_statement "(**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);" (call_expression "(**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110)" (parenthesized_expression "(**(code **)(puVar2 + 0x11384))" ( (pointer_expression "**(code **)(puVar2 + 0x11384)" * (pointer_expression "*(code **)(puVar2 + 0x11384)" * (cast_expression "(code **)(puVar2 + 0x11384)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x11384)" ( (binary_expression "puVar2 + 0x11384" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) , number_literal , number_literal ))) ;) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1828" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }" { (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" identifier = (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" ( (pointer_expression "**(code **)(puVar2 + 0x1139c)" * (pointer_expression "*(code **)(puVar2 + 0x1139c)" * (cast_expression "(code **)(puVar2 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x1139c)" ( (binary_expression "puVar2 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(iVar1,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174)" * (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1830" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }" { (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" identifier = (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" ( (pointer_expression "**(code **)(puVar2 + 0x1139c)" * (pointer_expression "*(code **)(puVar2 + 0x1139c)" * (cast_expression "(code **)(puVar2 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x1139c)" ( (binary_expression "puVar2 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(iVar1,0,10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178)" * (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2178)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2178" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1838" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }" { (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" identifier = (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" ( (pointer_expression "**(code **)(puVar2 + 0x1139c)" * (pointer_expression "*(code **)(puVar2 + 0x1139c)" * (cast_expression "(code **)(puVar2 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x1139c)" ( (binary_expression "puVar2 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(iVar1,0,0x10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c)" * (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x217c)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x217c" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1844" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }" { (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" identifier = (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" ( (pointer_expression "**(code **)(puVar2 + 0x1139c)" * (pointer_expression "*(code **)(puVar2 + 0x1139c)" * (cast_expression "(code **)(puVar2 + 0x1139c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x1139c)" ( (binary_expression "puVar2 + 0x1139c" identifier + number_literal) ))))) )) (argument_list "(iVar1,0,0x10)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180)" * (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2180)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2180" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) })) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1850" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }" { (expression_statement "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);" (call_expression "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1)" (parenthesized_expression "(**(code **)(puVar2 + 0x113b0))" ( (pointer_expression "**(code **)(puVar2 + 0x113b0)" * (pointer_expression "*(code **)(puVar2 + 0x113b0)" * (cast_expression "(code **)(puVar2 + 0x113b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x113b0)" ( (binary_expression "puVar2 + 0x113b0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2184" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860)" identifier = (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860)" identifier (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860)" ( identifier , (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1860" (pointer_expression "*(int *)(puVar2 + 0x11344)" * (cast_expression "(int *)(puVar2 + 0x11344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11344)" ( (binary_expression "puVar2 + 0x11344" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }" { (expression_statement "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);" (call_expression "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1)" (parenthesized_expression "(**(code **)(puVar2 + 0x113b0))" ( (pointer_expression "**(code **)(puVar2 + 0x113b0)" * (pointer_expression "*(code **)(puVar2 + 0x113b0)" * (cast_expression "(code **)(puVar2 + 0x113b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x113b0)" ( (binary_expression "puVar2 + 0x113b0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2204" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) , identifier ))) ;) })) (expression_statement "puVar7 = (undefined *)0x0;" (assignment_expression "puVar7 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }" if (parenthesized_expression "((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0))" ( (binary_expression "(((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)" (parenthesized_expression "(((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0))" ( (binary_expression "((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)" (parenthesized_expression "((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0))" ( (binary_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)" (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174)" * (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178)" * (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x2178)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2178)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2178" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c)" * (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x217c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x217c)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x217c" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)" ( (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180)" * (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x2180)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2180)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2180" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }" { (expression_statement "puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);" (assignment_expression "puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174)" identifier = (cast_expression "(undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2174)" ( (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" * (cast_expression "(int *)(puVar2 + 0x11338)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x11338)" ( (binary_expression "puVar2 + 0x11338" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return puVar7;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) }) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) & LIT) )) == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (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) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined * FUN_00010b80(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined1 auStack_1014 [4096];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);\n  iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);\n  if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }\n  iVar1 = local_14;\n  puVar2 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);\n  (**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }\n  puVar7 = (undefined *)0x0;\n  if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }\n  return puVar7;\n}" (type_identifier "undefined") (pointer_declarator "* FUN_00010b80(undefined4 param_1,undefined4 param_2)" (* "*") (function_declarator "FUN_00010b80(undefined4 param_1,undefined4 param_2)" (identifier "FUN_00010b80") (parameter_list "(undefined4 param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")")))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined *puVar7;\n  undefined1 auStack_1014 [4096];\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_000220c0;\n  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);\n  (*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);\n  iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);\n  if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }\n  if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }\n  iVar1 = local_14;\n  puVar2 = PTR___stack_chk_fail_000220bc;\n  (*(code *)PTR___stack_chk_fail_000220bc)();\n  do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);\n  (**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);\n  if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }\n  iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);\n  if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }\n  puVar7 = (undefined *)0x0;\n  if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }\n  return puVar7;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined1 auStack_1014 [4096];" (type_identifier "undefined1") (array_declarator "auStack_1014 [4096]" (identifier "auStack_1014") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_000220c0;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_000220c0" (identifier "local_14") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000220c0" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000220c0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000220c0")))) (; ";")) (expression_statement "(*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);" (call_expression "(*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81)" (parenthesized_expression "(*(code *)PTR_memset_00022084)" (( "(") (pointer_expression "*(code *)PTR_memset_00022084" (* "*") (cast_expression "(code *)PTR_memset_00022084" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_00022084"))) () ")")) (argument_list "(PTR_DAT_00022038 + 0x20f0,0,0x81)" (( "(") (binary_expression "PTR_DAT_00022038 + 0x20f0" (identifier "PTR_DAT_00022038") (+ "+") (number_literal "0x20f0")) (, ",") (number_literal "0") (, ",") (number_literal "0x81") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);" (call_expression "(*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2)" (parenthesized_expression "(*(code *)PTR_snprintf_00022080)" (( "(") (pointer_expression "*(code *)PTR_snprintf_00022080" (* "*") (cast_expression "(code *)PTR_snprintf_00022080" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_snprintf_00022080"))) () ")")) (argument_list "(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2)" (( "(") (identifier "auStack_1014") (, ",") (number_literal "0xfff") (, ",") (binary_expression "PTR_00022044 + 0x180c" (identifier "PTR_00022044") (+ "+") (number_literal "0x180c")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);" (assignment_expression "iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_open_000220a0)(auStack_1014,0)" (parenthesized_expression "(*(code *)PTR_open_000220a0)" (( "(") (pointer_expression "*(code *)PTR_open_000220a0" (* "*") (cast_expression "(code *)PTR_open_000220a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_open_000220a0"))) () ")")) (argument_list "(auStack_1014,0)" (( "(") (identifier "auStack_1014") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 < 0) {\n    puVar2 = (undefined *)0x0;\n  }\n  else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    puVar2 = (undefined *)0x0;\n  }" ({ "{") (expression_statement "puVar2 = (undefined *)0x0;" (assignment_expression "puVar2 = (undefined *)0x0" (identifier "puVar2") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" (else "else") (compound_statement "{\n    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);\n    (*(code *)PTR_close_00022070)(iVar1);\n    iVar1 = iVar3 + -1;\n    if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }\n  }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);" (assignment_expression "iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80)" (parenthesized_expression "(*(code *)PTR_read_000220d0)" (( "(") (pointer_expression "*(code *)PTR_read_000220d0" (* "*") (cast_expression "(code *)PTR_read_000220d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_read_000220d0"))) () ")")) (argument_list "(iVar1,PTR_DAT_00022038 + 0x20f0,0x80)" (( "(") (identifier "iVar1") (, ",") (binary_expression "PTR_DAT_00022038 + 0x20f0" (identifier "PTR_DAT_00022038") (+ "+") (number_literal "0x20f0")) (, ",") (number_literal "0x80") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_close_00022070)(iVar1);" (call_expression "(*(code *)PTR_close_00022070)(iVar1)" (parenthesized_expression "(*(code *)PTR_close_00022070)" (( "(") (pointer_expression "*(code *)PTR_close_00022070" (* "*") (cast_expression "(code *)PTR_close_00022070" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_close_00022070"))) () ")")) (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "iVar1 = iVar3 + -1;" (assignment_expression "iVar1 = iVar3 + -1" (identifier "iVar1") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar1 < 1) {\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }\n    else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }" (if "if") (parenthesized_expression "(iVar1 < 1)" (( "(") (binary_expression "iVar1 < 1" (identifier "iVar1") (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_00010ce0:\n      puVar2 = (undefined *)0x0;\n      if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }\n    }" ({ "{") (labeled_statement "LAB_00010ce0:\n      puVar2 = (undefined *)0x0;" (statement_identifier "LAB_00010ce0") (: ":") (expression_statement "puVar2 = (undefined *)0x0;" (assignment_expression "puVar2 = (undefined *)0x0" (identifier "puVar2") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (if_statement "if (-1 < iVar1) {\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }" (if "if") (parenthesized_expression "(-1 < iVar1)" (( "(") (binary_expression "-1 < iVar1" (number_literal "-1") (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n        puVar2 = PTR_DAT_00022038 + 0x20f0;\n      }" ({ "{") (expression_statement "puVar2 = PTR_DAT_00022038 + 0x20f0;" (assignment_expression "puVar2 = PTR_DAT_00022038 + 0x20f0" (identifier "puVar2") (= "=") (binary_expression "PTR_DAT_00022038 + 0x20f0" (identifier "PTR_DAT_00022038") (+ "+") (number_literal "0x20f0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }" (else "else") (compound_statement "{\n      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();\n      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;\n      do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);\n      puVar2 = PTR_DAT_00022038 + 0x20f0;\n    }" ({ "{") (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_00022064)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_00022064)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_00022064)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_00022064" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_00022064" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_00022064"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;" (assignment_expression "puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0" (identifier "puVar2") (= "=") (binary_expression "PTR_DAT_00022038 + iVar3 + 0x20f0" (binary_expression "PTR_DAT_00022038 + iVar3" (identifier "PTR_DAT_00022038") (+ "+") (identifier "iVar3")) (+ "+") (number_literal "0x20f0"))) (; ";")) (do_statement "do {\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      } while (iVar1 != 0);" (do "do") (compound_statement "{\n        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;\n        puVar2[-1] = 0;\n        iVar1 = iVar1 + -1;\n        puVar2 = puVar2 + -1;\n      }" ({ "{") (if_statement "if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;" (if "if") (parenthesized_expression "((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0)" (( "(") (binary_expression "(*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0" (parenthesized_expression "(*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20)" (( "(") (binary_expression "*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20" (pointer_expression "*(ushort *)(*piVar4 + (char)puVar2[-1] * 2)" (* "*") (cast_expression "(ushort *)(*piVar4 + (char)puVar2[-1] * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar4 + (char)puVar2[-1] * 2)" (( "(") (binary_expression "*piVar4 + (char)puVar2[-1] * 2" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (binary_expression "(char)puVar2[-1] * 2" (cast_expression "(char)puVar2[-1]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "puVar2[-1]" (identifier "puVar2") ([ "[") (number_literal "-1") (] "]"))) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00010ce0;" (goto "goto") (statement_identifier "LAB_00010ce0") (; ";"))) (expression_statement "puVar2[-1] = 0;" (assignment_expression "puVar2[-1] = 0" (subscript_expression "puVar2[-1]" (identifier "puVar2") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar2 = puVar2 + -1;" (assignment_expression "puVar2 = puVar2 + -1" (identifier "puVar2") (= "=") (binary_expression "puVar2 + -1" (identifier "puVar2") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar2 = PTR_DAT_00022038 + 0x20f0;" (assignment_expression "puVar2 = PTR_DAT_00022038 + 0x20f0" (identifier "puVar2") (= "=") (binary_expression "PTR_DAT_00022038 + 0x20f0" (identifier "PTR_DAT_00022038") (+ "+") (number_literal "0x20f0"))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {\n    return puVar2;\n  }" (if "if") (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_000220c0)" (( "(") (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_000220c0" (identifier "local_14") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000220c0" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000220c0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000220c0")))) () ")")) (compound_statement "{\n    return puVar2;\n  }" ({ "{") (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))) (expression_statement "iVar1 = local_14;" (assignment_expression "iVar1 = local_14" (identifier "iVar1") (= "=") (identifier "local_14")) (; ";")) (expression_statement "puVar2 = PTR___stack_chk_fail_000220bc;" (assignment_expression "puVar2 = PTR___stack_chk_fail_000220bc" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_fail_000220bc")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000220bc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000220bc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000220bc)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000220bc" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000220bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000220bc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (do_statement "do {\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  } while (iVar5 != 0);" (do "do") (compound_statement "{\n    do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);\n    iVar3 = iVar3 + 0xb;\n    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);\n  }" ({ "{") (do_statement "do {\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);" (do "do") (compound_statement "{\n      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);\n      if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }\n      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();\n    }" ({ "{") (expression_statement "iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);" (assignment_expression "iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar2 + 0x11378))(iVar1)" (parenthesized_expression "(**(code **)(puVar2 + 0x11378))" (( "(") (pointer_expression "**(code **)(puVar2 + 0x11378)" (* "*") (pointer_expression "*(code **)(puVar2 + 0x11378)" (* "*") (cast_expression "(code **)(puVar2 + 0x11378)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x11378)" (( "(") (binary_expression "puVar2 + 0x11378" (identifier "puVar2") (+ "+") (number_literal "0x11378")) () ")"))))) () ")")) (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        return (undefined *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return (undefined *)0x0;\n      }" ({ "{") (return_statement "return (undefined *)0x0;" (return "return") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();" (assignment_expression "piVar4 = (int *)(**(code **)(puVar2 + 0x11364))()" (identifier "piVar4") (= "=") (cast_expression "(int *)(**(code **)(puVar2 + 0x11364))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar2 + 0x11364))()" (parenthesized_expression "(**(code **)(puVar2 + 0x11364))" (( "(") (pointer_expression "**(code **)(puVar2 + 0x11364)" (* "*") (pointer_expression "*(code **)(puVar2 + 0x11364)" (* "*") (cast_expression "(code **)(puVar2 + 0x11364)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x11364)" (( "(") (binary_expression "puVar2 + 0x11364" (identifier "puVar2") (+ "+") (number_literal "0x11364")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0)" (( "(") (binary_expression "(*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8)" (( "(") (binary_expression "*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8" (pointer_expression "*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2)" (* "*") (cast_expression "(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar4 + *(char *)(iVar3 + 0xb) * 2)" (( "(") (binary_expression "*piVar4 + *(char *)(iVar3 + 0xb) * 2" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (binary_expression "*(char *)(iVar3 + 0xb) * 2" (pointer_expression "*(char *)(iVar3 + 0xb)" (* "*") (cast_expression "(char *)(iVar3 + 0xb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xb)" (( "(") (binary_expression "iVar3 + 0xb" (identifier "iVar3") (+ "+") (number_literal "0xb")) () ")")))) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar3 = iVar3 + 0xb;" (assignment_expression "iVar3 = iVar3 + 0xb" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 0xb" (identifier "iVar3") (+ "+") (number_literal "0xb"))) (; ";")) (expression_statement "iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);" (assignment_expression "iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar2 + 0x11398))(iVar3,0x3a)" (parenthesized_expression "(**(code **)(puVar2 + 0x11398))" (( "(") (pointer_expression "**(code **)(puVar2 + 0x11398)" (* "*") (pointer_expression "*(code **)(puVar2 + 0x11398)" (* "*") (cast_expression "(code **)(puVar2 + 0x11398)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x11398)" (( "(") (binary_expression "puVar2 + 0x11398" (identifier "puVar2") (+ "+") (number_literal "0x11398")) () ")"))))) () ")")) (argument_list "(iVar3,0x3a)" (( "(") (identifier "iVar3") (, ",") (number_literal "0x3a") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "(**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);" (call_expression "(**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110)" (parenthesized_expression "(**(code **)(puVar2 + 0x11384))" (( "(") (pointer_expression "**(code **)(puVar2 + 0x11384)" (* "*") (pointer_expression "*(code **)(puVar2 + 0x11384)" (* "*") (cast_expression "(code **)(puVar2 + 0x11384)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x11384)" (( "(") (binary_expression "puVar2 + 0x11384" (identifier "puVar2") (+ "+") (number_literal "0x11384")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x2174")) (, ",") (number_literal "0") (, ",") (number_literal "0x110") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828)" (identifier "iVar1") (= "=") (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828)" (identifier "FUN_00010b80") (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828)" (( "(") (identifier "iVar3") (, ",") (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1828" (pointer_expression "*(int *)(puVar2 + 0x11344)" (* "*") (cast_expression "(int *)(puVar2 + 0x11344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11344)" (( "(") (binary_expression "puVar2 + 0x11344" (identifier "puVar2") (+ "+") (number_literal "0x11344")) () ")")))) (+ "+") (number_literal "0x1828")) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;\n  }" ({ "{") (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" (( "(") (pointer_expression "**(code **)(puVar2 + 0x1139c)" (* "*") (pointer_expression "*(code **)(puVar2 + 0x1139c)" (* "*") (cast_expression "(code **)(puVar2 + 0x1139c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x1139c)" (( "(") (binary_expression "puVar2 + 0x1139c" (identifier "puVar2") (+ "+") (number_literal "0x1139c")) () ")"))))) () ")")) (argument_list "(iVar1,0,10)" (( "(") (identifier "iVar1") (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2174)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x2174")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830)" (identifier "iVar1") (= "=") (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830)" (identifier "FUN_00010b80") (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830)" (( "(") (identifier "iVar3") (, ",") (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1830" (pointer_expression "*(int *)(puVar2 + 0x11344)" (* "*") (cast_expression "(int *)(puVar2 + 0x11344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11344)" (( "(") (binary_expression "puVar2 + 0x11344" (identifier "puVar2") (+ "+") (number_literal "0x11344")) () ")")))) (+ "+") (number_literal "0x1830")) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;\n  }" ({ "{") (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" (( "(") (pointer_expression "**(code **)(puVar2 + 0x1139c)" (* "*") (pointer_expression "*(code **)(puVar2 + 0x1139c)" (* "*") (cast_expression "(code **)(puVar2 + 0x1139c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x1139c)" (( "(") (binary_expression "puVar2 + 0x1139c" (identifier "puVar2") (+ "+") (number_literal "0x1139c")) () ")"))))) () ")")) (argument_list "(iVar1,0,10)" (( "(") (identifier "iVar1") (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2178)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2178" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x2178")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838)" (identifier "iVar1") (= "=") (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838)" (identifier "FUN_00010b80") (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838)" (( "(") (identifier "iVar3") (, ",") (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1838" (pointer_expression "*(int *)(puVar2 + 0x11344)" (* "*") (cast_expression "(int *)(puVar2 + 0x11344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11344)" (( "(") (binary_expression "puVar2 + 0x11344" (identifier "puVar2") (+ "+") (number_literal "0x11344")) () ")")))) (+ "+") (number_literal "0x1838")) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;\n  }" ({ "{") (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" (( "(") (pointer_expression "**(code **)(puVar2 + 0x1139c)" (* "*") (pointer_expression "*(code **)(puVar2 + 0x1139c)" (* "*") (cast_expression "(code **)(puVar2 + 0x1139c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x1139c)" (( "(") (binary_expression "puVar2 + 0x1139c" (identifier "puVar2") (+ "+") (number_literal "0x1139c")) () ")"))))) () ")")) (argument_list "(iVar1,0,0x10)" (( "(") (identifier "iVar1") (, ",") (number_literal "0") (, ",") (number_literal "0x10") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x217c)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x217c" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x217c")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844)" (identifier "iVar1") (= "=") (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844)" (identifier "FUN_00010b80") (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844)" (( "(") (identifier "iVar3") (, ",") (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1844" (pointer_expression "*(int *)(puVar2 + 0x11344)" (* "*") (cast_expression "(int *)(puVar2 + 0x11344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11344)" (( "(") (binary_expression "puVar2 + 0x11344" (identifier "puVar2") (+ "+") (number_literal "0x11344")) () ")")))) (+ "+") (number_literal "0x1844")) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);\n    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;\n  }" ({ "{") (expression_statement "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);" (assignment_expression "uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10)" (parenthesized_expression "(**(code **)(puVar2 + 0x1139c))" (( "(") (pointer_expression "**(code **)(puVar2 + 0x1139c)" (* "*") (pointer_expression "*(code **)(puVar2 + 0x1139c)" (* "*") (cast_expression "(code **)(puVar2 + 0x1139c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x1139c)" (( "(") (binary_expression "puVar2 + 0x1139c" (identifier "puVar2") (+ "+") (number_literal "0x1139c")) () ")"))))) () ")")) (argument_list "(iVar1,0,0x10)" (( "(") (identifier "iVar1") (, ",") (number_literal "0") (, ",") (number_literal "0x10") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;" (assignment_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6" (pointer_expression "*(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2180)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2180" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x2180")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850)" (identifier "iVar1") (= "=") (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850)" (identifier "FUN_00010b80") (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850)" (( "(") (identifier "iVar3") (, ",") (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1850" (pointer_expression "*(int *)(puVar2 + 0x11344)" (* "*") (cast_expression "(int *)(puVar2 + 0x11344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11344)" (( "(") (binary_expression "puVar2 + 0x11344" (identifier "puVar2") (+ "+") (number_literal "0x11344")) () ")")))) (+ "+") (number_literal "0x1850")) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);\n  }" ({ "{") (expression_statement "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);" (call_expression "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1)" (parenthesized_expression "(**(code **)(puVar2 + 0x113b0))" (( "(") (pointer_expression "**(code **)(puVar2 + 0x113b0)" (* "*") (pointer_expression "*(code **)(puVar2 + 0x113b0)" (* "*") (cast_expression "(code **)(puVar2 + 0x113b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x113b0)" (( "(") (binary_expression "puVar2 + 0x113b0" (identifier "puVar2") (+ "+") (number_literal "0x113b0")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2184" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x2184")) (, ",") (identifier "iVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);" (assignment_expression "iVar1 = FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860)" (identifier "iVar1") (= "=") (call_expression "FUN_00010b80(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860)" (identifier "FUN_00010b80") (argument_list "(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860)" (( "(") (identifier "iVar3") (, ",") (binary_expression "*(int *)(puVar2 + 0x11344) + 0x1860" (pointer_expression "*(int *)(puVar2 + 0x11344)" (* "*") (cast_expression "(int *)(puVar2 + 0x11344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11344)" (( "(") (binary_expression "puVar2 + 0x11344" (identifier "puVar2") (+ "+") (number_literal "0x11344")) () ")")))) (+ "+") (number_literal "0x1860")) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);\n  }" ({ "{") (expression_statement "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);" (call_expression "(**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1)" (parenthesized_expression "(**(code **)(puVar2 + 0x113b0))" (( "(") (pointer_expression "**(code **)(puVar2 + 0x113b0)" (* "*") (pointer_expression "*(code **)(puVar2 + 0x113b0)" (* "*") (cast_expression "(code **)(puVar2 + 0x113b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x113b0)" (( "(") (binary_expression "puVar2 + 0x113b0" (identifier "puVar2") (+ "+") (number_literal "0x113b0")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2204" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x2204")) (, ",") (identifier "iVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined *)0x0;" (assignment_expression "puVar7 = (undefined *)0x0" (identifier "puVar7") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }" (if "if") (parenthesized_expression "((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0))" (( "(") (binary_expression "(((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&\n     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)" (parenthesized_expression "(((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0))" (( "(") (binary_expression "((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&\n      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)" (parenthesized_expression "((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0))" (( "(") (binary_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&\n       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)" (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174)" (* "*") (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x2174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2174)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x2174")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178)" (* "*") (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x2178)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2178)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2178" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x2178")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c)" (* "*") (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x217c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x217c)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x217c" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x217c")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)" (( "(") (binary_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0" (pointer_expression "*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180)" (* "*") (cast_expression "(int *)(*(int *)(puVar2 + 0x11338) + 0x2180)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2180)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2180" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x2180")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);\n  }" ({ "{") (expression_statement "puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);" (assignment_expression "puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174)" (identifier "puVar7") (= "=") (cast_expression "(undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar2 + 0x11338) + 0x2174)" (( "(") (binary_expression "*(int *)(puVar2 + 0x11338) + 0x2174" (pointer_expression "*(int *)(puVar2 + 0x11338)" (* "*") (cast_expression "(int *)(puVar2 + 0x11338)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x11338)" (( "(") (binary_expression "puVar2 + 0x11338" (identifier "puVar2") (+ "+") (number_literal "0x11338")) () ")")))) (+ "+") (number_literal "0x2174")) () ")")))) (; ";")) (} "}"))) (return_statement "return puVar7;" (return "return") (identifier "puVar7") (; ";")) (} "}")))

char * function_1(char *dev,char *attr)

{
  int var_6;
  int var_3;
  char *var_8;
  int var_4;
  int *piVar5;
  char *var_7;
  type_1 uVar7;
  type_2 *var_5;
  char path [4096];
  
  var_6 = *(int *)PTR___stack_chk_guard_000220c0;
  (*(type_3 *)PTR_memset_00022084)(var_1 + 0x20f0,0,0x81);
  (*(type_3 *)PTR_snprintf_00022080)(path,0xfff,var_2 + 0x180c,dev,attr);
  var_3 = (*(type_3 *)PTR_open_000220a0)(path,0);
  if (var_3 < 0) {
    var_8 = (char *)0x0;
  }
  else {
    var_4 = (*(type_3 *)PTR_read_000220d0)(var_3,var_1 + 0x20f0,0x80);
    (*(type_3 *)PTR_close_00022070)(var_3);
    var_3 = var_4 + -1;
    if (var_3 < 1) {
LAB_00010ce0:
      var_8 = (char *)0x0;
      if (-1 < var_3) {
        var_8 = var_1 + 0x20f0;
      }
    }
    else {
      piVar5 = (int *)(*(type_3 *)PTR___ctype_b_loc_00022064)();
      var_5 = var_1 + var_4 + 0x20f0;
      do {
        if ((*(type_4 *)(*piVar5 + (char)var_5[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;
        var_5[-1] = 0;
        var_3 = var_3 + -1;
        var_5 = var_5 + -1;
      } while (var_3 != 0);
      var_8 = var_1 + 0x20f0;
    }
  }
  if (var_6 == *(int *)PTR___stack_chk_guard_000220c0) {
    return var_8;
  }
  var_5 = PTR___stack_chk_fail_000220bc;
  (*(type_3 *)PTR___stack_chk_fail_000220bc)();
  do {
    do {
      var_3 = (**(type_3 **)(var_5 + 0x11378))(var_6);
      if (var_3 == 0) {
        return (char *)0x0;
      }
      piVar5 = (int *)(**(type_3 **)(var_5 + 0x11364))();
    } while ((*(type_4 *)(*piVar5 + *(char *)(var_3 + 0xb) * 2) & 8) == 0);
    var_8 = (char *)(var_3 + 0xb);
    var_3 = (**(type_3 **)(var_5 + 0x11398))(var_8,0x3a);
  } while (var_3 != 0);
  (**(type_3 **)(var_5 + 0x11384))(*(int *)(var_5 + 0x11338) + 0x2174,0,0x110);
  var_7 = function_1(var_8,(char *)(*(int *)(var_5 + 0x11344) + 0x1828));
  if (var_7 != (char *)0x0) {
    uVar7 = (**(type_3 **)(var_5 + 0x1139c))(var_7,0,10);
    *(type_1 *)(*(int *)(var_5 + 0x11338) + 0x2174) = uVar7;
  }
  var_7 = function_1(var_8,(char *)(*(int *)(var_5 + 0x11344) + 0x1830));
  if (var_7 != (char *)0x0) {
    uVar7 = (**(type_3 **)(var_5 + 0x1139c))(var_7,0,10);
    *(type_1 *)(*(int *)(var_5 + 0x11338) + 0x2178) = uVar7;
  }
  var_7 = function_1(var_8,(char *)(*(int *)(var_5 + 0x11344) + 0x1838));
  if (var_7 != (char *)0x0) {
    uVar7 = (**(type_3 **)(var_5 + 0x1139c))(var_7,0,0x10);
    *(type_1 *)(*(int *)(var_5 + 0x11338) + 0x217c) = uVar7;
  }
  var_7 = function_1(var_8,(char *)(*(int *)(var_5 + 0x11344) + 0x1844));
  if (var_7 != (char *)0x0) {
    uVar7 = (**(type_3 **)(var_5 + 0x1139c))(var_7,0,0x10);
    *(type_1 *)(*(int *)(var_5 + 0x11338) + 0x2180) = uVar7;
  }
  var_7 = function_1(var_8,(char *)(*(int *)(var_5 + 0x11344) + 0x1850));
  if (var_7 != (char *)0x0) {
    (**(type_3 **)(var_5 + 0x113b0))(*(int *)(var_5 + 0x11338) + 0x2184,var_7);
  }
  var_8 = function_1(var_8,(char *)(*(int *)(var_5 + 0x11344) + 0x1860));
  if (var_8 != (char *)0x0) {
    (**(type_3 **)(var_5 + 0x113b0))(*(int *)(var_5 + 0x11338) + 0x2204,var_8);
  }
  var_8 = (char *)0x0;
  if ((((*(int *)(*(int *)(var_5 + 0x11338) + 0x2174) != 0) &&
       (*(int *)(*(int *)(var_5 + 0x11338) + 0x2178) != 0)) &&
      (*(int *)(*(int *)(var_5 + 0x11338) + 0x217c) != 0)) &&
     (*(int *)(*(int *)(var_5 + 0x11338) + 0x2180) != 0)) {
    var_8 = (char *)(*(int *)(var_5 + 0x11338) + 0x2174);
  }
  return var_8;
}


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

undefined * MASKED(undefined4 param_1,undefined4 param_2)

{
  int iVar1;
  undefined *puVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  undefined4 uVar6;
  undefined *puVar7;
  undefined1 auStack_1014 [4096];
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_000220c0;
  (*(code *)PTR_memset_00022084)(PTR_DAT_00022038 + 0x20f0,0,0x81);
  (*(code *)PTR_snprintf_00022080)(auStack_1014,0xfff,PTR_00022044 + 0x180c,param_1,param_2);
  iVar1 = (*(code *)PTR_open_000220a0)(auStack_1014,0);
  if (iVar1 < 0) {
    puVar2 = (undefined *)0x0;
  }
  else {
    iVar3 = (*(code *)PTR_read_000220d0)(iVar1,PTR_DAT_00022038 + 0x20f0,0x80);
    (*(code *)PTR_close_00022070)(iVar1);
    iVar1 = iVar3 + -1;
    if (iVar1 < 1) {
LAB_00010ce0:
      puVar2 = (undefined *)0x0;
      if (-1 < iVar1) {
        puVar2 = PTR_DAT_00022038 + 0x20f0;
      }
    }
    else {
      piVar4 = (int *)(*(code *)PTR___ctype_b_loc_00022064)();
      puVar2 = PTR_DAT_00022038 + iVar3 + 0x20f0;
      do {
        if ((*(ushort *)(*piVar4 + (char)puVar2[-1] * 2) & 0x20) == 0) goto LAB_00010ce0;
        puVar2[-1] = 0;
        iVar1 = iVar1 + -1;
        puVar2 = puVar2 + -1;
      } while (iVar1 != 0);
      puVar2 = PTR_DAT_00022038 + 0x20f0;
    }
  }
  if (local_14 == *(int *)PTR___stack_chk_guard_000220c0) {
    return puVar2;
  }
  iVar1 = local_14;
  puVar2 = PTR___stack_chk_fail_000220bc;
  (*(code *)PTR___stack_chk_fail_000220bc)();
  do {
    do {
      iVar3 = (**(code **)(puVar2 + 0x11378))(iVar1);
      if (iVar3 == 0) {
        return (undefined *)0x0;
      }
      piVar4 = (int *)(**(code **)(puVar2 + 0x11364))();
    } while ((*(ushort *)(*piVar4 + *(char *)(iVar3 + 0xb) * 2) & 8) == 0);
    iVar3 = iVar3 + 0xb;
    iVar5 = (**(code **)(puVar2 + 0x11398))(iVar3,0x3a);
  } while (iVar5 != 0);
  (**(code **)(puVar2 + 0x11384))(*(int *)(puVar2 + 0x11338) + 0x2174,0,0x110);
  iVar1 = MASKED(iVar3,*(int *)(puVar2 + 0x11344) + 0x1828);
  if (iVar1 != 0) {
    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);
    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2174) = uVar6;
  }
  iVar1 = MASKED(iVar3,*(int *)(puVar2 + 0x11344) + 0x1830);
  if (iVar1 != 0) {
    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,10);
    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2178) = uVar6;
  }
  iVar1 = MASKED(iVar3,*(int *)(puVar2 + 0x11344) + 0x1838);
  if (iVar1 != 0) {
    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);
    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x217c) = uVar6;
  }
  iVar1 = MASKED(iVar3,*(int *)(puVar2 + 0x11344) + 0x1844);
  if (iVar1 != 0) {
    uVar6 = (**(code **)(puVar2 + 0x1139c))(iVar1,0,0x10);
    *(undefined4 *)(*(int *)(puVar2 + 0x11338) + 0x2180) = uVar6;
  }
  iVar1 = MASKED(iVar3,*(int *)(puVar2 + 0x11344) + 0x1850);
  if (iVar1 != 0) {
    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2184,iVar1);
  }
  iVar1 = MASKED(iVar3,*(int *)(puVar2 + 0x11344) + 0x1860);
  if (iVar1 != 0) {
    (**(code **)(puVar2 + 0x113b0))(*(int *)(puVar2 + 0x11338) + 0x2204,iVar1);
  }
  puVar7 = (undefined *)0x0;
  if ((((*(int *)(*(int *)(puVar2 + 0x11338) + 0x2174) != 0) &&
       (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2178) != 0)) &&
      (*(int *)(*(int *)(puVar2 + 0x11338) + 0x217c) != 0)) &&
     (*(int *)(*(int *)(puVar2 + 0x11338) + 0x2180) != 0)) {
    puVar7 = (undefined *)(*(int *)(puVar2 + 0x11338) + 0x2174);
  }
  return puVar7;
}

