
void parse_long_options(int argc,char **argv,char *command_name,char *package,char *version,
                       _func_void_int *usage_func,...)

{
  byte bVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  int *piVar5;
  byte *pbVar6;
  int iVar7;
  int *piVar8;
  undefined *puVar9;
  undefined4 uVar10;
  undefined *puVar11;
  code *pcVar12;
  va_list authors;
  
  puVar2 = PTR___stack_chk_guard_000292ac;
  puVar11 = PTR_rpl_opterr_00029154;
  iVar7 = *(int *)PTR___stack_chk_guard_000292ac;
  uVar10 = *(undefined4 *)PTR_rpl_opterr_00029154;
  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;
  if ((argc == 2) &&
     (iVar3 = rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,
                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0), iVar3 != -1))
  {
    if (iVar3 == 0x68) {
      (*usage_func)(0);
    }
    else if (iVar3 == 0x76) {
      version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);
      (*(code *)PTR_exit_00029260)(0);
      return;
    }
  }
  puVar9 = PTR_rpl_optind_00029140;
  iVar3 = *(int *)puVar2;
  *(undefined4 *)puVar11 = uVar10;
  *(undefined4 *)puVar9 = 0;
  if (iVar7 == iVar3) {
    return;
  }
  puVar11 = PTR___stack_chk_fail_0002929c;
  (*(code *)PTR___stack_chk_fail_0002929c)();
  if (puVar9 != (undefined *)0x0) {
    iVar7 = (**(code **)(puVar11 + 0x16e58))();
    if (((iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)) &&
       (iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),
       iVar4 == 0)) {
      iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3);
      if (iVar4 != 0) {
        **(int **)(puVar11 + 0x16d5c) = iVar3;
        **(int **)(puVar11 + 0x16e64) = iVar3;
        return;
      }
      puVar9 = (undefined *)(iVar7 + 4);
      **(undefined4 **)(puVar11 + 0x16e40) = puVar9;
    }
    **(undefined4 **)(puVar11 + 0x16d5c) = puVar9;
    **(undefined4 **)(puVar11 + 0x16e64) = puVar9;
    return;
  }
  iVar7 = 1;
  piVar8 = (int *)(*(int *)(puVar11 + 0x16d44) + 0x7610);
  (**(code **)(puVar11 + 0x16ecc))(piVar8,1,0x37,**(undefined4 **)(puVar11 + 0x16f00));
  pcVar12 = *(code **)(puVar11 + 0x16e2c);
  (*pcVar12)();
  *piVar8 = 0;
  piVar8[1] = 0;
  piVar8[2] = 0;
  piVar8[3] = 0;
  piVar8[4] = 0;
  piVar8[5] = 0;
  piVar8[6] = 0;
  piVar8[7] = 0;
  piVar8[8] = 0;
  piVar8[9] = 0;
  piVar8[10] = 0;
  piVar8[0xb] = 0;
  if (iVar7 != 10) {
    *piVar8 = iVar7;
    return;
  }
  pcVar12 = *(code **)(pcVar12 + 0x16cfc);
  (*pcVar12)();
  piVar5 = (int *)(**(code **)(pcVar12 + 0x16d48))(0,piVar8,5);
  if (piVar8 != piVar5) {
    return;
  }
  pbVar6 = (byte *)locale_charset();
  if ((*pbVar6 & 0xdf) == 0x55) {
    if (((((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d)) ||
       (pbVar6[4] != 0x38)) goto LAB_000126d0;
    bVar1 = pbVar6[5];
  }
  else {
    if (((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||
        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))) ||
       ((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)))) goto LAB_000126d0;
    bVar1 = pbVar6[7];
  }
  if (bVar1 == 0) {
    return;
  }
LAB_000126d0:
  if (iVar7 == 9) {
    return;
  }
  return;
}



int * parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                        undefined4 param_5,code *param_6)

{
  undefined *puVar1;
  int *piVar2;
  int iVar3;
  int iVar4;
  byte *pbVar5;
  int *piVar6;
  undefined *puVar7;
  undefined4 uVar8;
  int iVar9;
  undefined *puVar10;
  code *pcVar11;
  
  puVar1 = PTR___stack_chk_guard_000292ac;
  puVar10 = PTR_rpl_opterr_00029154;
  piVar6 = *(int **)PTR___stack_chk_guard_000292ac;
  uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;
  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;
  if ((param_1 == 2) &&
     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),
     iVar3 != -1)) {
    if (iVar3 == 0x68) {
      (*param_6)(0);
    }
    else if (iVar3 == 0x76) {
      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);
      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);
      return piVar6;
    }
  }
  puVar7 = PTR_rpl_optind_00029140;
  piVar2 = *(int **)puVar1;
  *(undefined4 *)puVar10 = uVar8;
  *(undefined4 *)puVar7 = 0;
  if (piVar6 == piVar2) {
    return piVar2;
  }
  puVar10 = PTR___stack_chk_fail_0002929c;
  (*(code *)PTR___stack_chk_fail_0002929c)();
  if (puVar7 != (undefined *)0x0) {
    iVar3 = (**(code **)(puVar10 + 0x16e58))();
    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&
       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),
       iVar4 == 0)) {
      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);
      if (iVar4 != 0) {
        **(int **)(puVar10 + 0x16d5c) = iVar9;
        piVar6 = *(int **)(puVar10 + 0x16e64);
        *piVar6 = iVar9;
        return piVar6;
      }
      puVar7 = (undefined *)(iVar3 + 4);
      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;
    }
    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;
    piVar6 = *(int **)(puVar10 + 0x16e64);
    *piVar6 = (int)puVar7;
    return piVar6;
  }
  iVar3 = 1;
  piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);
  (**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));
  pcVar11 = *(code **)(puVar10 + 0x16e2c);
  (*pcVar11)();
  *piVar6 = 0;
  piVar6[1] = 0;
  piVar6[2] = 0;
  piVar6[3] = 0;
  piVar6[4] = 0;
  piVar6[5] = 0;
  piVar6[6] = 0;
  piVar6[7] = 0;
  piVar6[8] = 0;
  piVar6[9] = 0;
  piVar6[10] = 0;
  piVar6[0xb] = 0;
  if (iVar3 == 10) {
    pcVar11 = *(code **)(pcVar11 + 0x16cfc);
    (*pcVar11)();
    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);
    if (piVar6 == piVar2) {
      pbVar5 = (byte *)locale_charset();
      if ((*pbVar5 & 0xdf) == 0x55) {
        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))
           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {
          if (*(char *)piVar2 != '`') {
            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);
          }
          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);
        }
      }
      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&
                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&
               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {
        if (*(char *)piVar2 != '`') {
          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);
        }
        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);
      }
      if (iVar3 != 9) {
        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);
      }
      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);
    }
    return piVar2;
  }
  *piVar6 = iVar3;
  return piVar6;
}


lui gp,0x2
addiu gp,gp,-0x11b0
addu gp,gp,t9
addiu sp,sp,-0x48
li v0,0x2
sw s1,0x2c(sp)
sw s0,0x28(sp)
lw s1,-0x7e24(gp)
lw s0,-0x7f7c(gp)
sw gp,0x18(sp)
sw s6,0x40(sp)
sw s5,0x3c(sp)
sw s2,0x30(sp)
sw ra,0x44(sp)
sw s4,0x38(sp)
sw s3,0x34(sp)
lw v1,0x0(s1)
lw s2,0x0(s0)
lw s5,0x58(sp)
lw s6,0x5c(sp)
sw zero,0x0(s0)
sw v1,0x24(sp)
beq a0,v0,0x00012320
_or s3,a2,zero
lw a0,-0x7f90(gp)
lw v1,0x24(sp)
lw v0,0x0(s1)
sw s2,0x0(s0)
bne v1,v0,0x000123ac
_sw zero,0x0(a0)
lw ra,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x48
lw a2,-0x7fcc(gp)
or s4,a3,zero
lw a3,-0x7fd8(gp)
lw t9,-0x7f94(gp)
addiu a2,a2,0x75fc
sw zero,0x10(sp)
bal 0x00016470
_addiu a3,a3,-0x705c
li v1,-0x1
beq v0,v1,0x000122e0
_lw gp,0x18(sp)
li v1,0x68
beq v0,v1,0x00012398
_li v1,0x76
bne v0,v1,0x000122e4
_lw a0,-0x7f90(gp)
addiu v0,sp,0x60
lw t9,-0x7f78(gp)
or a3,s5,zero
sw v0,0x10(sp)
or a2,s4,zero
sw v0,0x20(sp)
or a1,s3,zero
lw v0,-0x7e9c(gp)
bal 0x00014e20
_lw a0,0x0(v0)
lw gp,0x18(sp)
lw t9,-0x7e70(gp)
jalr t9
_or a0,zero,zero
or t9,s6,zero
jalr t9
_or a0,zero,zero
b 0x000122e0
_lw gp,0x18(sp)
lw t9,-0x7e34(gp)
jalr t9
_nop
nop
nop
(translation_unit "int * parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int *piVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  \n  puVar1 = PTR___stack_chk_guard_000292ac;\n  puVar10 = PTR_rpl_opterr_00029154;\n  piVar6 = *(int **)PTR___stack_chk_guard_000292ac;\n  uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }\n  puVar7 = PTR_rpl_optind_00029140;\n  piVar2 = *(int **)puVar1;\n  *(undefined4 *)puVar10 = uVar8;\n  *(undefined4 *)puVar7 = 0;\n  if (piVar6 == piVar2) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }\n  iVar3 = 1;\n  piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);\n  (**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));\n  pcVar11 = *(code **)(puVar10 + 0x16e2c);\n  (*pcVar11)();\n  *piVar6 = 0;\n  piVar6[1] = 0;\n  piVar6[2] = 0;\n  piVar6[3] = 0;\n  piVar6[4] = 0;\n  piVar6[5] = 0;\n  piVar6[6] = 0;\n  piVar6[7] = 0;\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[10] = 0;\n  piVar6[0xb] = 0;\n  if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }\n  *piVar6 = iVar3;\n  return piVar6;\n}\n\n" (function_definition "int * parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int *piVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  \n  puVar1 = PTR___stack_chk_guard_000292ac;\n  puVar10 = PTR_rpl_opterr_00029154;\n  piVar6 = *(int **)PTR___stack_chk_guard_000292ac;\n  uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }\n  puVar7 = PTR_rpl_optind_00029140;\n  piVar2 = *(int **)puVar1;\n  *(undefined4 *)puVar10 = uVar8;\n  *(undefined4 *)puVar7 = 0;\n  if (piVar6 == piVar2) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }\n  iVar3 = 1;\n  piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);\n  (**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));\n  pcVar11 = *(code **)(puVar10 + 0x16e2c);\n  (*pcVar11)();\n  *piVar6 = 0;\n  piVar6[1] = 0;\n  piVar6[2] = 0;\n  piVar6[3] = 0;\n  piVar6[4] = 0;\n  piVar6[5] = 0;\n  piVar6[6] = 0;\n  piVar6[7] = 0;\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[10] = 0;\n  piVar6[0xb] = 0;\n  if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }\n  *piVar6 = iVar3;\n  return piVar6;\n}" primitive_type (pointer_declarator "* parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)" * (function_declarator "parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "code *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int *piVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  \n  puVar1 = PTR___stack_chk_guard_000292ac;\n  puVar10 = PTR_rpl_opterr_00029154;\n  piVar6 = *(int **)PTR___stack_chk_guard_000292ac;\n  uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }\n  puVar7 = PTR_rpl_optind_00029140;\n  piVar2 = *(int **)puVar1;\n  *(undefined4 *)puVar10 = uVar8;\n  *(undefined4 *)puVar7 = 0;\n  if (piVar6 == piVar2) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }\n  iVar3 = 1;\n  piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);\n  (**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));\n  pcVar11 = *(code **)(puVar10 + 0x16e2c);\n  (*pcVar11)();\n  *piVar6 = 0;\n  piVar6[1] = 0;\n  piVar6[2] = 0;\n  piVar6[3] = 0;\n  piVar6[4] = 0;\n  piVar6[5] = 0;\n  piVar6[6] = 0;\n  piVar6[7] = 0;\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[10] = 0;\n  piVar6[0xb] = 0;\n  if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }\n  *piVar6 = iVar3;\n  return piVar6;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000292ac;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000292ac" identifier = identifier) ;) (expression_statement "puVar10 = PTR_rpl_opterr_00029154;" (assignment_expression "puVar10 = PTR_rpl_opterr_00029154" identifier = identifier) ;) (expression_statement "piVar6 = *(int **)PTR___stack_chk_guard_000292ac;" (assignment_expression "piVar6 = *(int **)PTR___stack_chk_guard_000292ac" identifier = (pointer_expression "*(int **)PTR___stack_chk_guard_000292ac" * (cast_expression "(int **)PTR___stack_chk_guard_000292ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;" (assignment_expression "uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154" identifier = (pointer_expression "*(undefined4 *)PTR_rpl_opterr_00029154" * (cast_expression "(undefined4 *)PTR_rpl_opterr_00029154" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)PTR_rpl_opterr_00029154 = 0;" (assignment_expression "*(undefined4 *)PTR_rpl_opterr_00029154 = 0" (pointer_expression "*(undefined4 *)PTR_rpl_opterr_00029154" * (cast_expression "(undefined4 *)PTR_rpl_opterr_00029154" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }" if (parenthesized_expression "((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1))" ( (binary_expression "(param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)" (parenthesized_expression "(param_1 == 2)" ( (binary_expression "param_1 == 2" identifier == number_literal) )) && (parenthesized_expression "(iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)" ( (comma_expression "iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1" (assignment_expression "iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0)" identifier = (call_expression "rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0)" identifier (argument_list "(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0)" ( number_literal , identifier , (binary_expression "PTR_00029104 + 0x75fc" identifier + number_literal) , (binary_expression "PTR_DAT_000290f8 + -0x705c" identifier + number_literal) , number_literal )))) , (binary_expression "iVar3 != -1" identifier != number_literal)) ))) )) (compound_statement "{\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }" { (if_statement "if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" if (parenthesized_expression "(iVar3 == 0x68)" ( (binary_expression "iVar3 == 0x68" identifier == number_literal) )) (compound_statement "{\n      (*param_6)(0);\n    }" { (expression_statement "(*param_6)(0);" (call_expression "(*param_6)(0)" (parenthesized_expression "(*param_6)" ( (pointer_expression "*param_6" * identifier) )) (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" else (if_statement "if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" if (parenthesized_expression "(iVar3 == 0x76)" ( (binary_expression "iVar3 == 0x76" identifier == number_literal) )) (compound_statement "{\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" { (expression_statement "version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);" (call_expression "version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018)" identifier (argument_list "(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018)" ( (pointer_expression "*(undefined4 *)PTR_stdout_00029234" * (cast_expression "(undefined4 *)PTR_stdout_00029234" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier , identifier , identifier , (pointer_expression "&stack0x00000018" & identifier) ))) ;) (expression_statement "piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);" (assignment_expression "piVar6 = (int *)(*(code *)PTR_exit_00029260)(0)" identifier = (cast_expression "(int *)(*(code *)PTR_exit_00029260)(0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_exit_00029260)(0)" (parenthesized_expression "(*(code *)PTR_exit_00029260)" ( (pointer_expression "*(code *)PTR_exit_00029260" * (cast_expression "(code *)PTR_exit_00029260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (return_statement "return piVar6;" return identifier ;) })))) })) (expression_statement "puVar7 = PTR_rpl_optind_00029140;" (assignment_expression "puVar7 = PTR_rpl_optind_00029140" identifier = identifier) ;) (expression_statement "piVar2 = *(int **)puVar1;" (assignment_expression "piVar2 = *(int **)puVar1" identifier = (pointer_expression "*(int **)puVar1" * (cast_expression "(int **)puVar1" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined4 *)puVar10 = uVar8;" (assignment_expression "*(undefined4 *)puVar10 = uVar8" (pointer_expression "*(undefined4 *)puVar10" * (cast_expression "(undefined4 *)puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)puVar7 = 0;" (assignment_expression "*(undefined4 *)puVar7 = 0" (pointer_expression "*(undefined4 *)puVar7" * (cast_expression "(undefined4 *)puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (piVar6 == piVar2) {\n    return piVar2;\n  }" if (parenthesized_expression "(piVar6 == piVar2)" ( (binary_expression "piVar6 == piVar2" identifier == identifier) )) (compound_statement "{\n    return piVar2;\n  }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "puVar10 = PTR___stack_chk_fail_0002929c;" (assignment_expression "puVar10 = PTR___stack_chk_fail_0002929c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0002929c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002929c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002929c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002929c" * (cast_expression "(code *)PTR___stack_chk_fail_0002929c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }" { (expression_statement "iVar3 = (**(code **)(puVar10 + 0x16e58))();" (assignment_expression "iVar3 = (**(code **)(puVar10 + 0x16e58))()" identifier = (call_expression "(**(code **)(puVar10 + 0x16e58))()" (parenthesized_expression "(**(code **)(puVar10 + 0x16e58))" ( (pointer_expression "**(code **)(puVar10 + 0x16e58)" * (pointer_expression "*(code **)(puVar10 + 0x16e58)" * (cast_expression "(code **)(puVar10 + 0x16e58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e58)" ( (binary_expression "puVar10 + 0x16e58" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }" if (parenthesized_expression "(((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0))" ( (binary_expression "((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)" (parenthesized_expression "((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7))" ( (binary_expression "(iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)" ( (comma_expression "iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7" (assignment_expression "iVar9 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) , (binary_expression "6 < iVar9 - (int)puVar7" number_literal < (binary_expression "iVar9 - (int)puVar7" identifier - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) && (parenthesized_expression "(iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7)" identifier = (call_expression "(**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7)" (parenthesized_expression "(**(code **)(puVar10 + 0x16e30))" ( (pointer_expression "**(code **)(puVar10 + 0x16e30)" * (pointer_expression "*(code **)(puVar10 + 0x16e30)" * (cast_expression "(code **)(puVar10 + 0x16e30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e30)" ( (binary_expression "puVar10 + 0x16e30" identifier + number_literal) ))))) )) (argument_list "(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7)" ( (binary_expression "iVar3 + -6" identifier + number_literal) , (binary_expression "*(int *)(puVar10 + 0x16d44) + 0x7648" (pointer_expression "*(int *)(puVar10 + 0x16d44)" * (cast_expression "(int *)(puVar10 + 0x16d44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16d44)" ( (binary_expression "puVar10 + 0x16d44" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }" { (expression_statement "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);" (assignment_expression "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3)" identifier = (call_expression "(**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3)" (parenthesized_expression "(**(code **)(puVar10 + 0x16e30))" ( (pointer_expression "**(code **)(puVar10 + 0x16e30)" * (pointer_expression "*(code **)(puVar10 + 0x16e30)" * (cast_expression "(code **)(puVar10 + 0x16e30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e30)" ( (binary_expression "puVar10 + 0x16e30" identifier + number_literal) ))))) )) (argument_list "(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3)" ( identifier , (binary_expression "*(int *)(puVar10 + 0x16d44) + 0x7650" (pointer_expression "*(int *)(puVar10 + 0x16d44)" * (cast_expression "(int *)(puVar10 + 0x16d44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16d44)" ( (binary_expression "puVar10 + 0x16d44" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }" { (expression_statement "**(int **)(puVar10 + 0x16d5c) = iVar9;" (assignment_expression "**(int **)(puVar10 + 0x16d5c) = iVar9" (pointer_expression "**(int **)(puVar10 + 0x16d5c)" * (pointer_expression "*(int **)(puVar10 + 0x16d5c)" * (cast_expression "(int **)(puVar10 + 0x16d5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16d5c)" ( (binary_expression "puVar10 + 0x16d5c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar6 = *(int **)(puVar10 + 0x16e64);" (assignment_expression "piVar6 = *(int **)(puVar10 + 0x16e64)" identifier = (pointer_expression "*(int **)(puVar10 + 0x16e64)" * (cast_expression "(int **)(puVar10 + 0x16e64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e64)" ( (binary_expression "puVar10 + 0x16e64" identifier + number_literal) ))))) ;) (expression_statement "*piVar6 = iVar9;" (assignment_expression "*piVar6 = iVar9" (pointer_expression "*piVar6" * identifier) = identifier) ;) (return_statement "return piVar6;" return identifier ;) })) (expression_statement "puVar7 = (undefined *)(iVar3 + 4);" (assignment_expression "puVar7 = (undefined *)(iVar3 + 4)" identifier = (cast_expression "(undefined *)(iVar3 + 4)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) ;) (expression_statement "**(undefined4 **)(puVar10 + 0x16e40) = puVar7;" (assignment_expression "**(undefined4 **)(puVar10 + 0x16e40) = puVar7" (pointer_expression "**(undefined4 **)(puVar10 + 0x16e40)" * (pointer_expression "*(undefined4 **)(puVar10 + 0x16e40)" * (cast_expression "(undefined4 **)(puVar10 + 0x16e40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e40)" ( (binary_expression "puVar10 + 0x16e40" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "**(undefined4 **)(puVar10 + 0x16d5c) = puVar7;" (assignment_expression "**(undefined4 **)(puVar10 + 0x16d5c) = puVar7" (pointer_expression "**(undefined4 **)(puVar10 + 0x16d5c)" * (pointer_expression "*(undefined4 **)(puVar10 + 0x16d5c)" * (cast_expression "(undefined4 **)(puVar10 + 0x16d5c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16d5c)" ( (binary_expression "puVar10 + 0x16d5c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar6 = *(int **)(puVar10 + 0x16e64);" (assignment_expression "piVar6 = *(int **)(puVar10 + 0x16e64)" identifier = (pointer_expression "*(int **)(puVar10 + 0x16e64)" * (cast_expression "(int **)(puVar10 + 0x16e64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e64)" ( (binary_expression "puVar10 + 0x16e64" identifier + number_literal) ))))) ;) (expression_statement "*piVar6 = (int)puVar7;" (assignment_expression "*piVar6 = (int)puVar7" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return piVar6;" return identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);" (assignment_expression "piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610)" identifier = (cast_expression "(int *)(*(int *)(puVar10 + 0x16d44) + 0x7610)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x16d44) + 0x7610)" ( (binary_expression "*(int *)(puVar10 + 0x16d44) + 0x7610" (pointer_expression "*(int *)(puVar10 + 0x16d44)" * (cast_expression "(int *)(puVar10 + 0x16d44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16d44)" ( (binary_expression "puVar10 + 0x16d44" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));" (call_expression "(**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00))" (parenthesized_expression "(**(code **)(puVar10 + 0x16ecc))" ( (pointer_expression "**(code **)(puVar10 + 0x16ecc)" * (pointer_expression "*(code **)(puVar10 + 0x16ecc)" * (cast_expression "(code **)(puVar10 + 0x16ecc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16ecc)" ( (binary_expression "puVar10 + 0x16ecc" identifier + number_literal) ))))) )) (argument_list "(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00))" ( identifier , number_literal , number_literal , (pointer_expression "**(undefined4 **)(puVar10 + 0x16f00)" * (pointer_expression "*(undefined4 **)(puVar10 + 0x16f00)" * (cast_expression "(undefined4 **)(puVar10 + 0x16f00)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16f00)" ( (binary_expression "puVar10 + 0x16f00" identifier + number_literal) ))))) ))) ;) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x16e2c);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x16e2c)" identifier = (pointer_expression "*(code **)(puVar10 + 0x16e2c)" * (cast_expression "(code **)(puVar10 + 0x16e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e2c)" ( (binary_expression "puVar10 + 0x16e2c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (expression_statement "piVar6[1] = 0;" (assignment_expression "piVar6[1] = 0" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[2] = 0;" (assignment_expression "piVar6[2] = 0" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[3] = 0;" (assignment_expression "piVar6[3] = 0" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[4] = 0;" (assignment_expression "piVar6[4] = 0" (subscript_expression "piVar6[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[5] = 0;" (assignment_expression "piVar6[5] = 0" (subscript_expression "piVar6[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[6] = 0;" (assignment_expression "piVar6[6] = 0" (subscript_expression "piVar6[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[7] = 0;" (assignment_expression "piVar6[7] = 0" (subscript_expression "piVar6[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[8] = 0;" (assignment_expression "piVar6[8] = 0" (subscript_expression "piVar6[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[9] = 0;" (assignment_expression "piVar6[9] = 0" (subscript_expression "piVar6[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[10] = 0;" (assignment_expression "piVar6[10] = 0" (subscript_expression "piVar6[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0xb] = 0;" (assignment_expression "piVar6[0xb] = 0" (subscript_expression "piVar6[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }" if (parenthesized_expression "(iVar3 == 10)" ( (binary_expression "iVar3 == 10" identifier == number_literal) )) (compound_statement "{\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }" { (expression_statement "pcVar11 = *(code **)(pcVar11 + 0x16cfc);" (assignment_expression "pcVar11 = *(code **)(pcVar11 + 0x16cfc)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x16cfc)" * (cast_expression "(code **)(pcVar11 + 0x16cfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x16cfc)" ( (binary_expression "pcVar11 + 0x16cfc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5)" identifier = (cast_expression "(int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5)" (parenthesized_expression "(**(code **)(pcVar11 + 0x16d48))" ( (pointer_expression "**(code **)(pcVar11 + 0x16d48)" * (pointer_expression "*(code **)(pcVar11 + 0x16d48)" * (cast_expression "(code **)(pcVar11 + 0x16d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x16d48)" ( (binary_expression "pcVar11 + 0x16d48" identifier + number_literal) ))))) )) (argument_list "(0,piVar6,5)" ( number_literal , identifier , number_literal ))))) ;) (if_statement "if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }" if (parenthesized_expression "(piVar6 == piVar2)" ( (binary_expression "piVar6 == piVar2" identifier == identifier) )) (compound_statement "{\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }" { (expression_statement "pbVar5 = (byte *)locale_charset();" (assignment_expression "pbVar5 = (byte *)locale_charset()" identifier = (cast_expression "(byte *)locale_charset()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "locale_charset()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" if (parenthesized_expression "((*pbVar5 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar5 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar5 & 0xdf)" ( (binary_expression "*pbVar5 & 0xdf" (pointer_expression "*pbVar5" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }" { (if_statement "if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }" if (parenthesized_expression "(((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0))))" ( (binary_expression "((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))" (parenthesized_expression "((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))" ( (binary_expression "(((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d)" (parenthesized_expression "(((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46))" ( (binary_expression "((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)" (parenthesized_expression "((pbVar5[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar5[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar5[1] & 0xdf)" ( (binary_expression "pbVar5[1] & 0xdf" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar5[2] & 0xdf) == 0x46)" ( (binary_expression "(pbVar5[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar5[2] & 0xdf)" ( (binary_expression "pbVar5[2] & 0xdf" (subscript_expression "pbVar5[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pbVar5[3] == 0x2d)" ( (binary_expression "pbVar5[3] == 0x2d" (subscript_expression "pbVar5[3]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))" ( (parenthesized_expression "(pbVar5[4] == 0x38 && (pbVar5[5] == 0))" ( (binary_expression "pbVar5[4] == 0x38 && (pbVar5[5] == 0)" (binary_expression "pbVar5[4] == 0x38" (subscript_expression "pbVar5[4]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar5[5] == 0)" ( (binary_expression "pbVar5[5] == 0" (subscript_expression "pbVar5[5]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }" { (if_statement "if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }" if (parenthesized_expression "(*(char *)piVar2 != '`')" ( (binary_expression "*(char *)piVar2 != '`'" (pointer_expression "*(char *)piVar2" * (cast_expression "(char *)piVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }" { (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);" return (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7658)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7658" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);" return (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7664)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7664" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) ))) ;) })) }) (else_clause "else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" else (if_statement "if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" if (parenthesized_expression "((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0))))" ( (binary_expression "(((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))" (parenthesized_expression "(((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33))" ( (binary_expression "((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)" (parenthesized_expression "((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30))))))" ( (binary_expression "(((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))" (parenthesized_expression "(((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42))" ( (binary_expression "((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)" (parenthesized_expression "((*pbVar5 & 0xdf) == 0x47)" ( (binary_expression "(*pbVar5 & 0xdf) == 0x47" (parenthesized_expression "(*pbVar5 & 0xdf)" ( (binary_expression "*pbVar5 & 0xdf" (pointer_expression "*pbVar5" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar5[1] & 0xdf) == 0x42)" ( (binary_expression "(pbVar5[1] & 0xdf) == 0x42" (parenthesized_expression "(pbVar5[1] & 0xdf)" ( (binary_expression "pbVar5[1] & 0xdf" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))" ( (parenthesized_expression "(pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30))))" ( (binary_expression "pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))" (binary_expression "pbVar5[2] == 0x31" (subscript_expression "pbVar5[2]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))" ( (parenthesized_expression "(pbVar5[3] == 0x38 && (pbVar5[4] == 0x30))" ( (binary_expression "pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)" (binary_expression "pbVar5[3] == 0x38" (subscript_expression "pbVar5[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar5[4] == 0x30)" ( (binary_expression "pbVar5[4] == 0x30" (subscript_expression "pbVar5[4]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) ))) )) && (parenthesized_expression "(pbVar5[5] == 0x33)" ( (binary_expression "pbVar5[5] == 0x33" (subscript_expression "pbVar5[5]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))" ( (parenthesized_expression "(pbVar5[6] == 0x30 && (pbVar5[7] == 0))" ( (binary_expression "pbVar5[6] == 0x30 && (pbVar5[7] == 0)" (binary_expression "pbVar5[6] == 0x30" (subscript_expression "pbVar5[6]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar5[7] == 0)" ( (binary_expression "pbVar5[7] == 0" (subscript_expression "pbVar5[7]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" { (if_statement "if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }" if (parenthesized_expression "(*(char *)piVar2 != '`')" ( (binary_expression "*(char *)piVar2 != '`'" (pointer_expression "*(char *)piVar2" * (cast_expression "(char *)piVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }" { (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);" return (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x765c)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x765c" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);" return (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7660)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7660" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) ))) ;) })))) (if_statement "if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }" if (parenthesized_expression "(iVar3 != 9)" ( (binary_expression "iVar3 != 9" identifier != number_literal) )) (compound_statement "{\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }" { (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);" return (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7668)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7668" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);" (assignment_expression "piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654)" identifier = (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7654)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7654" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return piVar2;" return identifier ;) })) (expression_statement "*piVar6 = iVar3;" (assignment_expression "*piVar6 = iVar3" (pointer_expression "*piVar6" * identifier) = identifier) ;) (return_statement "return piVar6;" return identifier ;) })))
(translation_unit "void parse_long_options(int argc,char **argv,char *command_name,char *package,char *version,\n                       _func_void_int *usage_func,...)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  int iVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  va_list authors;\n  \n  puVar2 = PTR___stack_chk_guard_000292ac;\n  puVar11 = PTR_rpl_opterr_00029154;\n  iVar7 = *(int *)PTR___stack_chk_guard_000292ac;\n  uVar10 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((argc == 2) &&\n     (iVar3 = rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0), iVar3 != -1))\n  {\n    if (iVar3 == 0x68) {\n      (*usage_func)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);\n      (*(code *)PTR_exit_00029260)(0);\n      return;\n    }\n  }\n  puVar9 = PTR_rpl_optind_00029140;\n  iVar3 = *(int *)puVar2;\n  *(undefined4 *)puVar11 = uVar10;\n  *(undefined4 *)puVar9 = 0;\n  if (iVar7 == iVar3) {\n    return;\n  }\n  puVar11 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar9 != (undefined *)0x0) {\n    iVar7 = (**(code **)(puVar11 + 0x16e58))();\n    if (((iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)) &&\n       (iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar11 + 0x16d5c) = iVar3;\n        **(int **)(puVar11 + 0x16e64) = iVar3;\n        return;\n      }\n      puVar9 = (undefined *)(iVar7 + 4);\n      **(undefined4 **)(puVar11 + 0x16e40) = puVar9;\n    }\n    **(undefined4 **)(puVar11 + 0x16d5c) = puVar9;\n    **(undefined4 **)(puVar11 + 0x16e64) = puVar9;\n    return;\n  }\n  iVar7 = 1;\n  piVar8 = (int *)(*(int *)(puVar11 + 0x16d44) + 0x7610);\n  (**(code **)(puVar11 + 0x16ecc))(piVar8,1,0x37,**(undefined4 **)(puVar11 + 0x16f00));\n  pcVar12 = *(code **)(puVar11 + 0x16e2c);\n  (*pcVar12)();\n  *piVar8 = 0;\n  piVar8[1] = 0;\n  piVar8[2] = 0;\n  piVar8[3] = 0;\n  piVar8[4] = 0;\n  piVar8[5] = 0;\n  piVar8[6] = 0;\n  piVar8[7] = 0;\n  piVar8[8] = 0;\n  piVar8[9] = 0;\n  piVar8[10] = 0;\n  piVar8[0xb] = 0;\n  if (iVar7 != 10) {\n    *piVar8 = iVar7;\n    return;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0x16cfc);\n  (*pcVar12)();\n  piVar5 = (int *)(**(code **)(pcVar12 + 0x16d48))(0,piVar8,5);\n  if (piVar8 != piVar5) {\n    return;\n  }\n  pbVar6 = (byte *)locale_charset();\n  if ((*pbVar6 & 0xdf) == 0x55) {\n    if (((((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d)) ||\n       (pbVar6[4] != 0x38)) goto LAB_000126d0;\n    bVar1 = pbVar6[5];\n  }\n  else {\n    if (((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))) ||\n       ((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)))) goto LAB_000126d0;\n    bVar1 = pbVar6[7];\n  }\n  if (bVar1 == 0) {\n    return;\n  }\nLAB_000126d0:\n  if (iVar7 == 9) {\n    return;\n  }\n  return;\n}\n\n" (function_definition "void parse_long_options(int argc,char **argv,char *command_name,char *package,char *version,\n                       _func_void_int *usage_func,...)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  int iVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  va_list authors;\n  \n  puVar2 = PTR___stack_chk_guard_000292ac;\n  puVar11 = PTR_rpl_opterr_00029154;\n  iVar7 = *(int *)PTR___stack_chk_guard_000292ac;\n  uVar10 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((argc == 2) &&\n     (iVar3 = rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0), iVar3 != -1))\n  {\n    if (iVar3 == 0x68) {\n      (*usage_func)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);\n      (*(code *)PTR_exit_00029260)(0);\n      return;\n    }\n  }\n  puVar9 = PTR_rpl_optind_00029140;\n  iVar3 = *(int *)puVar2;\n  *(undefined4 *)puVar11 = uVar10;\n  *(undefined4 *)puVar9 = 0;\n  if (iVar7 == iVar3) {\n    return;\n  }\n  puVar11 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar9 != (undefined *)0x0) {\n    iVar7 = (**(code **)(puVar11 + 0x16e58))();\n    if (((iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)) &&\n       (iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar11 + 0x16d5c) = iVar3;\n        **(int **)(puVar11 + 0x16e64) = iVar3;\n        return;\n      }\n      puVar9 = (undefined *)(iVar7 + 4);\n      **(undefined4 **)(puVar11 + 0x16e40) = puVar9;\n    }\n    **(undefined4 **)(puVar11 + 0x16d5c) = puVar9;\n    **(undefined4 **)(puVar11 + 0x16e64) = puVar9;\n    return;\n  }\n  iVar7 = 1;\n  piVar8 = (int *)(*(int *)(puVar11 + 0x16d44) + 0x7610);\n  (**(code **)(puVar11 + 0x16ecc))(piVar8,1,0x37,**(undefined4 **)(puVar11 + 0x16f00));\n  pcVar12 = *(code **)(puVar11 + 0x16e2c);\n  (*pcVar12)();\n  *piVar8 = 0;\n  piVar8[1] = 0;\n  piVar8[2] = 0;\n  piVar8[3] = 0;\n  piVar8[4] = 0;\n  piVar8[5] = 0;\n  piVar8[6] = 0;\n  piVar8[7] = 0;\n  piVar8[8] = 0;\n  piVar8[9] = 0;\n  piVar8[10] = 0;\n  piVar8[0xb] = 0;\n  if (iVar7 != 10) {\n    *piVar8 = iVar7;\n    return;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0x16cfc);\n  (*pcVar12)();\n  piVar5 = (int *)(**(code **)(pcVar12 + 0x16d48))(0,piVar8,5);\n  if (piVar8 != piVar5) {\n    return;\n  }\n  pbVar6 = (byte *)locale_charset();\n  if ((*pbVar6 & 0xdf) == 0x55) {\n    if (((((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d)) ||\n       (pbVar6[4] != 0x38)) goto LAB_000126d0;\n    bVar1 = pbVar6[5];\n  }\n  else {\n    if (((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))) ||\n       ((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)))) goto LAB_000126d0;\n    bVar1 = pbVar6[7];\n  }\n  if (bVar1 == 0) {\n    return;\n  }\nLAB_000126d0:\n  if (iVar7 == 9) {\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "parse_long_options(int argc,char **argv,char *command_name,char *package,char *version,\n                       _func_void_int *usage_func,...)" identifier (parameter_list "(int argc,char **argv,char *command_name,char *package,char *version,\n                       _func_void_int *usage_func,...)" ( (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) , (parameter_declaration "char *command_name" primitive_type (pointer_declarator "*command_name" * identifier)) , (parameter_declaration "char *package" primitive_type (pointer_declarator "*package" * identifier)) , (parameter_declaration "char *version" primitive_type (pointer_declarator "*version" * identifier)) , (parameter_declaration "_func_void_int *usage_func" type_identifier (pointer_declarator "*usage_func" * identifier)) , (variadic_parameter "..." ...) ))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  byte *pbVar6;\n  int iVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 uVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  va_list authors;\n  \n  puVar2 = PTR___stack_chk_guard_000292ac;\n  puVar11 = PTR_rpl_opterr_00029154;\n  iVar7 = *(int *)PTR___stack_chk_guard_000292ac;\n  uVar10 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((argc == 2) &&\n     (iVar3 = rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0), iVar3 != -1))\n  {\n    if (iVar3 == 0x68) {\n      (*usage_func)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);\n      (*(code *)PTR_exit_00029260)(0);\n      return;\n    }\n  }\n  puVar9 = PTR_rpl_optind_00029140;\n  iVar3 = *(int *)puVar2;\n  *(undefined4 *)puVar11 = uVar10;\n  *(undefined4 *)puVar9 = 0;\n  if (iVar7 == iVar3) {\n    return;\n  }\n  puVar11 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar9 != (undefined *)0x0) {\n    iVar7 = (**(code **)(puVar11 + 0x16e58))();\n    if (((iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)) &&\n       (iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar11 + 0x16d5c) = iVar3;\n        **(int **)(puVar11 + 0x16e64) = iVar3;\n        return;\n      }\n      puVar9 = (undefined *)(iVar7 + 4);\n      **(undefined4 **)(puVar11 + 0x16e40) = puVar9;\n    }\n    **(undefined4 **)(puVar11 + 0x16d5c) = puVar9;\n    **(undefined4 **)(puVar11 + 0x16e64) = puVar9;\n    return;\n  }\n  iVar7 = 1;\n  piVar8 = (int *)(*(int *)(puVar11 + 0x16d44) + 0x7610);\n  (**(code **)(puVar11 + 0x16ecc))(piVar8,1,0x37,**(undefined4 **)(puVar11 + 0x16f00));\n  pcVar12 = *(code **)(puVar11 + 0x16e2c);\n  (*pcVar12)();\n  *piVar8 = 0;\n  piVar8[1] = 0;\n  piVar8[2] = 0;\n  piVar8[3] = 0;\n  piVar8[4] = 0;\n  piVar8[5] = 0;\n  piVar8[6] = 0;\n  piVar8[7] = 0;\n  piVar8[8] = 0;\n  piVar8[9] = 0;\n  piVar8[10] = 0;\n  piVar8[0xb] = 0;\n  if (iVar7 != 10) {\n    *piVar8 = iVar7;\n    return;\n  }\n  pcVar12 = *(code **)(pcVar12 + 0x16cfc);\n  (*pcVar12)();\n  piVar5 = (int *)(**(code **)(pcVar12 + 0x16d48))(0,piVar8,5);\n  if (piVar8 != piVar5) {\n    return;\n  }\n  pbVar6 = (byte *)locale_charset();\n  if ((*pbVar6 & 0xdf) == 0x55) {\n    if (((((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d)) ||\n       (pbVar6[4] != 0x38)) goto LAB_000126d0;\n    bVar1 = pbVar6[5];\n  }\n  else {\n    if (((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))) ||\n       ((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)))) goto LAB_000126d0;\n    bVar1 = pbVar6[7];\n  }\n  if (bVar1 == 0) {\n    return;\n  }\nLAB_000126d0:\n  if (iVar7 == 9) {\n    return;\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "va_list authors;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000292ac;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000292ac" identifier = identifier) ;) (expression_statement "puVar11 = PTR_rpl_opterr_00029154;" (assignment_expression "puVar11 = PTR_rpl_opterr_00029154" identifier = identifier) ;) (expression_statement "iVar7 = *(int *)PTR___stack_chk_guard_000292ac;" (assignment_expression "iVar7 = *(int *)PTR___stack_chk_guard_000292ac" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000292ac" * (cast_expression "(int *)PTR___stack_chk_guard_000292ac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar10 = *(undefined4 *)PTR_rpl_opterr_00029154;" (assignment_expression "uVar10 = *(undefined4 *)PTR_rpl_opterr_00029154" identifier = (pointer_expression "*(undefined4 *)PTR_rpl_opterr_00029154" * (cast_expression "(undefined4 *)PTR_rpl_opterr_00029154" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)PTR_rpl_opterr_00029154 = 0;" (assignment_expression "*(undefined4 *)PTR_rpl_opterr_00029154 = 0" (pointer_expression "*(undefined4 *)PTR_rpl_opterr_00029154" * (cast_expression "(undefined4 *)PTR_rpl_opterr_00029154" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if ((argc == 2) &&\n     (iVar3 = rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0), iVar3 != -1))\n  {\n    if (iVar3 == 0x68) {\n      (*usage_func)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);\n      (*(code *)PTR_exit_00029260)(0);\n      return;\n    }\n  }" if (parenthesized_expression "((argc == 2) &&\n     (iVar3 = rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0), iVar3 != -1))" ( (binary_expression "(argc == 2) &&\n     (iVar3 = rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0), iVar3 != -1)" (parenthesized_expression "(argc == 2)" ( (binary_expression "argc == 2" identifier == number_literal) )) && (parenthesized_expression "(iVar3 = rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0), iVar3 != -1)" ( (comma_expression "iVar3 = rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0), iVar3 != -1" (assignment_expression "iVar3 = rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0)" identifier = (call_expression "rpl_getopt_long(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0)" identifier (argument_list "(2,argv,PTR_00029104 + 0x75fc,\n                              (rpl_option *)(PTR_DAT_000290f8 + -0x705c),(int *)0x0)" ( number_literal , identifier , (binary_expression "PTR_00029104 + 0x75fc" identifier + number_literal) , (cast_expression "(rpl_option *)(PTR_DAT_000290f8 + -0x705c)" ( (type_descriptor "rpl_option *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000290f8 + -0x705c)" ( (binary_expression "PTR_DAT_000290f8 + -0x705c" identifier + number_literal) ))) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) , (binary_expression "iVar3 != -1" identifier != number_literal)) ))) )) (compound_statement "{\n    if (iVar3 == 0x68) {\n      (*usage_func)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);\n      (*(code *)PTR_exit_00029260)(0);\n      return;\n    }\n  }" { (if_statement "if (iVar3 == 0x68) {\n      (*usage_func)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);\n      (*(code *)PTR_exit_00029260)(0);\n      return;\n    }" if (parenthesized_expression "(iVar3 == 0x68)" ( (binary_expression "iVar3 == 0x68" identifier == number_literal) )) (compound_statement "{\n      (*usage_func)(0);\n    }" { (expression_statement "(*usage_func)(0);" (call_expression "(*usage_func)(0)" (parenthesized_expression "(*usage_func)" ( (pointer_expression "*usage_func" * identifier) )) (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else if (iVar3 == 0x76) {\n      version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);\n      (*(code *)PTR_exit_00029260)(0);\n      return;\n    }" else (if_statement "if (iVar3 == 0x76) {\n      version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);\n      (*(code *)PTR_exit_00029260)(0);\n      return;\n    }" if (parenthesized_expression "(iVar3 == 0x76)" ( (binary_expression "iVar3 == 0x76" identifier == number_literal) )) (compound_statement "{\n      version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);\n      (*(code *)PTR_exit_00029260)(0);\n      return;\n    }" { (expression_statement "version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018);" (call_expression "version_etc_va(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018)" identifier (argument_list "(*(FILE **)PTR_stdout_00029234,command_name,package,version,&stack0x00000018)" ( (pointer_expression "*(FILE **)PTR_stdout_00029234" * (cast_expression "(FILE **)PTR_stdout_00029234" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , identifier , identifier , identifier , (pointer_expression "&stack0x00000018" & identifier) ))) ;) (expression_statement "(*(code *)PTR_exit_00029260)(0);" (call_expression "(*(code *)PTR_exit_00029260)(0)" (parenthesized_expression "(*(code *)PTR_exit_00029260)" ( (pointer_expression "*(code *)PTR_exit_00029260" * (cast_expression "(code *)PTR_exit_00029260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (return_statement "return;" return ;) })))) })) (expression_statement "puVar9 = PTR_rpl_optind_00029140;" (assignment_expression "puVar9 = PTR_rpl_optind_00029140" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)puVar2;" (assignment_expression "iVar3 = *(int *)puVar2" identifier = (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)puVar11 = uVar10;" (assignment_expression "*(undefined4 *)puVar11 = uVar10" (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)puVar9 = 0;" (assignment_expression "*(undefined4 *)puVar9 = 0" (pointer_expression "*(undefined4 *)puVar9" * (cast_expression "(undefined4 *)puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (iVar7 == iVar3) {\n    return;\n  }" if (parenthesized_expression "(iVar7 == iVar3)" ( (binary_expression "iVar7 == iVar3" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar11 = PTR___stack_chk_fail_0002929c;" (assignment_expression "puVar11 = PTR___stack_chk_fail_0002929c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0002929c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002929c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002929c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002929c" * (cast_expression "(code *)PTR___stack_chk_fail_0002929c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (puVar9 != (undefined *)0x0) {\n    iVar7 = (**(code **)(puVar11 + 0x16e58))();\n    if (((iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)) &&\n       (iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar11 + 0x16d5c) = iVar3;\n        **(int **)(puVar11 + 0x16e64) = iVar3;\n        return;\n      }\n      puVar9 = (undefined *)(iVar7 + 4);\n      **(undefined4 **)(puVar11 + 0x16e40) = puVar9;\n    }\n    **(undefined4 **)(puVar11 + 0x16d5c) = puVar9;\n    **(undefined4 **)(puVar11 + 0x16e64) = puVar9;\n    return;\n  }" if (parenthesized_expression "(puVar9 != (undefined *)0x0)" ( (binary_expression "puVar9 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar7 = (**(code **)(puVar11 + 0x16e58))();\n    if (((iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)) &&\n       (iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar11 + 0x16d5c) = iVar3;\n        **(int **)(puVar11 + 0x16e64) = iVar3;\n        return;\n      }\n      puVar9 = (undefined *)(iVar7 + 4);\n      **(undefined4 **)(puVar11 + 0x16e40) = puVar9;\n    }\n    **(undefined4 **)(puVar11 + 0x16d5c) = puVar9;\n    **(undefined4 **)(puVar11 + 0x16e64) = puVar9;\n    return;\n  }" { (expression_statement "iVar7 = (**(code **)(puVar11 + 0x16e58))();" (assignment_expression "iVar7 = (**(code **)(puVar11 + 0x16e58))()" identifier = (call_expression "(**(code **)(puVar11 + 0x16e58))()" (parenthesized_expression "(**(code **)(puVar11 + 0x16e58))" ( (pointer_expression "**(code **)(puVar11 + 0x16e58)" * (pointer_expression "*(code **)(puVar11 + 0x16e58)" * (cast_expression "(code **)(puVar11 + 0x16e58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16e58)" ( (binary_expression "puVar11 + 0x16e58" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (((iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)) &&\n       (iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar11 + 0x16d5c) = iVar3;\n        **(int **)(puVar11 + 0x16e64) = iVar3;\n        return;\n      }\n      puVar9 = (undefined *)(iVar7 + 4);\n      **(undefined4 **)(puVar11 + 0x16e40) = puVar9;\n    }" if (parenthesized_expression "(((iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)) &&\n       (iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),\n       iVar4 == 0))" ( (binary_expression "((iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)) &&\n       (iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)" (parenthesized_expression "((iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9))" ( (binary_expression "(iVar7 != 0) && (iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9)" ( (comma_expression "iVar3 = iVar7 + 1, 6 < iVar3 - (int)puVar9" (assignment_expression "iVar3 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) , (binary_expression "6 < iVar3 - (int)puVar9" number_literal < (binary_expression "iVar3 - (int)puVar9" identifier - (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) && (parenthesized_expression "(iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7),\n       iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7)" identifier = (call_expression "(**(code **)(puVar11 + 0x16e30))(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7)" (parenthesized_expression "(**(code **)(puVar11 + 0x16e30))" ( (pointer_expression "**(code **)(puVar11 + 0x16e30)" * (pointer_expression "*(code **)(puVar11 + 0x16e30)" * (cast_expression "(code **)(puVar11 + 0x16e30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16e30)" ( (binary_expression "puVar11 + 0x16e30" identifier + number_literal) ))))) )) (argument_list "(iVar7 + -6,*(int *)(puVar11 + 0x16d44) + 0x7648,7)" ( (binary_expression "iVar7 + -6" identifier + number_literal) , (binary_expression "*(int *)(puVar11 + 0x16d44) + 0x7648" (pointer_expression "*(int *)(puVar11 + 0x16d44)" * (cast_expression "(int *)(puVar11 + 0x16d44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16d44)" ( (binary_expression "puVar11 + 0x16d44" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar11 + 0x16d5c) = iVar3;\n        **(int **)(puVar11 + 0x16e64) = iVar3;\n        return;\n      }\n      puVar9 = (undefined *)(iVar7 + 4);\n      **(undefined4 **)(puVar11 + 0x16e40) = puVar9;\n    }" { (expression_statement "iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3);" (assignment_expression "iVar4 = (**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3)" identifier = (call_expression "(**(code **)(puVar11 + 0x16e30))(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3)" (parenthesized_expression "(**(code **)(puVar11 + 0x16e30))" ( (pointer_expression "**(code **)(puVar11 + 0x16e30)" * (pointer_expression "*(code **)(puVar11 + 0x16e30)" * (cast_expression "(code **)(puVar11 + 0x16e30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16e30)" ( (binary_expression "puVar11 + 0x16e30" identifier + number_literal) ))))) )) (argument_list "(iVar3,*(int *)(puVar11 + 0x16d44) + 0x7650,3)" ( identifier , (binary_expression "*(int *)(puVar11 + 0x16d44) + 0x7650" (pointer_expression "*(int *)(puVar11 + 0x16d44)" * (cast_expression "(int *)(puVar11 + 0x16d44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16d44)" ( (binary_expression "puVar11 + 0x16d44" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n        **(int **)(puVar11 + 0x16d5c) = iVar3;\n        **(int **)(puVar11 + 0x16e64) = iVar3;\n        return;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        **(int **)(puVar11 + 0x16d5c) = iVar3;\n        **(int **)(puVar11 + 0x16e64) = iVar3;\n        return;\n      }" { (expression_statement "**(int **)(puVar11 + 0x16d5c) = iVar3;" (assignment_expression "**(int **)(puVar11 + 0x16d5c) = iVar3" (pointer_expression "**(int **)(puVar11 + 0x16d5c)" * (pointer_expression "*(int **)(puVar11 + 0x16d5c)" * (cast_expression "(int **)(puVar11 + 0x16d5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16d5c)" ( (binary_expression "puVar11 + 0x16d5c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(int **)(puVar11 + 0x16e64) = iVar3;" (assignment_expression "**(int **)(puVar11 + 0x16e64) = iVar3" (pointer_expression "**(int **)(puVar11 + 0x16e64)" * (pointer_expression "*(int **)(puVar11 + 0x16e64)" * (cast_expression "(int **)(puVar11 + 0x16e64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16e64)" ( (binary_expression "puVar11 + 0x16e64" identifier + number_literal) ))))) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "puVar9 = (undefined *)(iVar7 + 4);" (assignment_expression "puVar9 = (undefined *)(iVar7 + 4)" identifier = (cast_expression "(undefined *)(iVar7 + 4)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) ;) (expression_statement "**(undefined4 **)(puVar11 + 0x16e40) = puVar9;" (assignment_expression "**(undefined4 **)(puVar11 + 0x16e40) = puVar9" (pointer_expression "**(undefined4 **)(puVar11 + 0x16e40)" * (pointer_expression "*(undefined4 **)(puVar11 + 0x16e40)" * (cast_expression "(undefined4 **)(puVar11 + 0x16e40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16e40)" ( (binary_expression "puVar11 + 0x16e40" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "**(undefined4 **)(puVar11 + 0x16d5c) = puVar9;" (assignment_expression "**(undefined4 **)(puVar11 + 0x16d5c) = puVar9" (pointer_expression "**(undefined4 **)(puVar11 + 0x16d5c)" * (pointer_expression "*(undefined4 **)(puVar11 + 0x16d5c)" * (cast_expression "(undefined4 **)(puVar11 + 0x16d5c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16d5c)" ( (binary_expression "puVar11 + 0x16d5c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "**(undefined4 **)(puVar11 + 0x16e64) = puVar9;" (assignment_expression "**(undefined4 **)(puVar11 + 0x16e64) = puVar9" (pointer_expression "**(undefined4 **)(puVar11 + 0x16e64)" * (pointer_expression "*(undefined4 **)(puVar11 + 0x16e64)" * (cast_expression "(undefined4 **)(puVar11 + 0x16e64)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16e64)" ( (binary_expression "puVar11 + 0x16e64" identifier + number_literal) ))))) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "piVar8 = (int *)(*(int *)(puVar11 + 0x16d44) + 0x7610);" (assignment_expression "piVar8 = (int *)(*(int *)(puVar11 + 0x16d44) + 0x7610)" identifier = (cast_expression "(int *)(*(int *)(puVar11 + 0x16d44) + 0x7610)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x16d44) + 0x7610)" ( (binary_expression "*(int *)(puVar11 + 0x16d44) + 0x7610" (pointer_expression "*(int *)(puVar11 + 0x16d44)" * (cast_expression "(int *)(puVar11 + 0x16d44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x16d44)" ( (binary_expression "puVar11 + 0x16d44" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar11 + 0x16ecc))(piVar8,1,0x37,**(undefined4 **)(puVar11 + 0x16f00));" (call_expression "(**(code **)(puVar11 + 0x16ecc))(piVar8,1,0x37,**(undefined4 **)(puVar11 + 0x16f00))" (parenthesized_expression "(**(code **)(puVar11 + 0x16ecc))" ( (pointer_expression "**(code **)(puVar11 + 0x16ecc)" * (pointer_expression "*(code **)(puVar11 + 0x16ecc)" * (cast_expression "(code **)(puVar11 + 0x16ecc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16ecc)" ( (binary_expression "puVar11 + 0x16ecc" identifier + number_literal) ))))) )) (argument_list "(piVar8,1,0x37,**(undefined4 **)(puVar11 + 0x16f00))" ( identifier , number_literal , number_literal , (pointer_expression "**(undefined4 **)(puVar11 + 0x16f00)" * (pointer_expression "*(undefined4 **)(puVar11 + 0x16f00)" * (cast_expression "(undefined4 **)(puVar11 + 0x16f00)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16f00)" ( (binary_expression "puVar11 + 0x16f00" identifier + number_literal) ))))) ))) ;) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x16e2c);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x16e2c)" identifier = (pointer_expression "*(code **)(puVar11 + 0x16e2c)" * (cast_expression "(code **)(puVar11 + 0x16e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x16e2c)" ( (binary_expression "puVar11 + 0x16e2c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[2] = 0;" (assignment_expression "piVar8[2] = 0" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[4] = 0;" (assignment_expression "piVar8[4] = 0" (subscript_expression "piVar8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[5] = 0;" (assignment_expression "piVar8[5] = 0" (subscript_expression "piVar8[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[6] = 0;" (assignment_expression "piVar8[6] = 0" (subscript_expression "piVar8[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[7] = 0;" (assignment_expression "piVar8[7] = 0" (subscript_expression "piVar8[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[8] = 0;" (assignment_expression "piVar8[8] = 0" (subscript_expression "piVar8[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[9] = 0;" (assignment_expression "piVar8[9] = 0" (subscript_expression "piVar8[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[10] = 0;" (assignment_expression "piVar8[10] = 0" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xb] = 0;" (assignment_expression "piVar8[0xb] = 0" (subscript_expression "piVar8[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar7 != 10) {\n    *piVar8 = iVar7;\n    return;\n  }" if (parenthesized_expression "(iVar7 != 10)" ( (binary_expression "iVar7 != 10" identifier != number_literal) )) (compound_statement "{\n    *piVar8 = iVar7;\n    return;\n  }" { (expression_statement "*piVar8 = iVar7;" (assignment_expression "*piVar8 = iVar7" (pointer_expression "*piVar8" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar12 = *(code **)(pcVar12 + 0x16cfc);" (assignment_expression "pcVar12 = *(code **)(pcVar12 + 0x16cfc)" identifier = (pointer_expression "*(code **)(pcVar12 + 0x16cfc)" * (cast_expression "(code **)(pcVar12 + 0x16cfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x16cfc)" ( (binary_expression "pcVar12 + 0x16cfc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar5 = (int *)(**(code **)(pcVar12 + 0x16d48))(0,piVar8,5);" (assignment_expression "piVar5 = (int *)(**(code **)(pcVar12 + 0x16d48))(0,piVar8,5)" identifier = (cast_expression "(int *)(**(code **)(pcVar12 + 0x16d48))(0,piVar8,5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar12 + 0x16d48))(0,piVar8,5)" (parenthesized_expression "(**(code **)(pcVar12 + 0x16d48))" ( (pointer_expression "**(code **)(pcVar12 + 0x16d48)" * (pointer_expression "*(code **)(pcVar12 + 0x16d48)" * (cast_expression "(code **)(pcVar12 + 0x16d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x16d48)" ( (binary_expression "pcVar12 + 0x16d48" identifier + number_literal) ))))) )) (argument_list "(0,piVar8,5)" ( number_literal , identifier , number_literal ))))) ;) (if_statement "if (piVar8 != piVar5) {\n    return;\n  }" if (parenthesized_expression "(piVar8 != piVar5)" ( (binary_expression "piVar8 != piVar5" identifier != identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pbVar6 = (byte *)locale_charset();" (assignment_expression "pbVar6 = (byte *)locale_charset()" identifier = (cast_expression "(byte *)locale_charset()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "locale_charset()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((*pbVar6 & 0xdf) == 0x55) {\n    if (((((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d)) ||\n       (pbVar6[4] != 0x38)) goto LAB_000126d0;\n    bVar1 = pbVar6[5];\n  }\n  else {\n    if (((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))) ||\n       ((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)))) goto LAB_000126d0;\n    bVar1 = pbVar6[7];\n  }" if (parenthesized_expression "((*pbVar6 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar6 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar6 & 0xdf)" ( (binary_expression "*pbVar6 & 0xdf" (pointer_expression "*pbVar6" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (((((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d)) ||\n       (pbVar6[4] != 0x38)) goto LAB_000126d0;\n    bVar1 = pbVar6[5];\n  }" { (if_statement "if (((((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d)) ||\n       (pbVar6[4] != 0x38)) goto LAB_000126d0;" if (parenthesized_expression "(((((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d)) ||\n       (pbVar6[4] != 0x38))" ( (binary_expression "((((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d)) ||\n       (pbVar6[4] != 0x38)" (parenthesized_expression "((((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d))" ( (binary_expression "(((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)) || (pbVar6[3] != 0x2d)" (parenthesized_expression "(((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46))" ( (binary_expression "((pbVar6[1] & 0xdf) != 0x54) || ((pbVar6[2] & 0xdf) != 0x46)" (parenthesized_expression "((pbVar6[1] & 0xdf) != 0x54)" ( (binary_expression "(pbVar6[1] & 0xdf) != 0x54" (parenthesized_expression "(pbVar6[1] & 0xdf)" ( (binary_expression "pbVar6[1] & 0xdf" (subscript_expression "pbVar6[1]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "((pbVar6[2] & 0xdf) != 0x46)" ( (binary_expression "(pbVar6[2] & 0xdf) != 0x46" (parenthesized_expression "(pbVar6[2] & 0xdf)" ( (binary_expression "pbVar6[2] & 0xdf" (subscript_expression "pbVar6[2]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(pbVar6[3] != 0x2d)" ( (binary_expression "pbVar6[3] != 0x2d" (subscript_expression "pbVar6[3]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(pbVar6[4] != 0x38)" ( (binary_expression "pbVar6[4] != 0x38" (subscript_expression "pbVar6[4]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_000126d0;" goto statement_identifier ;)) (expression_statement "bVar1 = pbVar6[5];" (assignment_expression "bVar1 = pbVar6[5]" identifier = (subscript_expression "pbVar6[5]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    if (((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))) ||\n       ((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)))) goto LAB_000126d0;\n    bVar1 = pbVar6[7];\n  }" else (compound_statement "{\n    if (((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))) ||\n       ((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)))) goto LAB_000126d0;\n    bVar1 = pbVar6[7];\n  }" { (if_statement "if (((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))) ||\n       ((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)))) goto LAB_000126d0;" if (parenthesized_expression "(((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))) ||\n       ((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30))))" ( (binary_expression "((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))) ||\n       ((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)))" (parenthesized_expression "((((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30))))))" ( (binary_expression "(((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)) ||\n        ((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))" (parenthesized_expression "(((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42))" ( (binary_expression "((*pbVar6 & 0xdf) != 0x47) || ((pbVar6[1] & 0xdf) != 0x42)" (parenthesized_expression "((*pbVar6 & 0xdf) != 0x47)" ( (binary_expression "(*pbVar6 & 0xdf) != 0x47" (parenthesized_expression "(*pbVar6 & 0xdf)" ( (binary_expression "*pbVar6 & 0xdf" (pointer_expression "*pbVar6" * identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((pbVar6[1] & 0xdf) != 0x42)" ( (binary_expression "(pbVar6[1] & 0xdf) != 0x42" (parenthesized_expression "(pbVar6[1] & 0xdf)" ( (binary_expression "pbVar6[1] & 0xdf" (subscript_expression "pbVar6[1]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))))" ( (parenthesized_expression "(pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30))))" ( (binary_expression "pbVar6[2] != 0x31 || ((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))" (binary_expression "pbVar6[2] != 0x31" (subscript_expression "pbVar6[2]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "((pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)))" ( (parenthesized_expression "(pbVar6[3] != 0x38 || (pbVar6[4] != 0x30))" ( (binary_expression "pbVar6[3] != 0x38 || (pbVar6[4] != 0x30)" (binary_expression "pbVar6[3] != 0x38" (subscript_expression "pbVar6[3]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(pbVar6[4] != 0x30)" ( (binary_expression "pbVar6[4] != 0x30" (subscript_expression "pbVar6[4]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) ))) )) || (parenthesized_expression "((pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)))" ( (parenthesized_expression "(pbVar6[5] != 0x33 || (pbVar6[6] != 0x30))" ( (binary_expression "pbVar6[5] != 0x33 || (pbVar6[6] != 0x30)" (binary_expression "pbVar6[5] != 0x33" (subscript_expression "pbVar6[5]" identifier [ number_literal ]) != number_literal) || (parenthesized_expression "(pbVar6[6] != 0x30)" ( (binary_expression "pbVar6[6] != 0x30" (subscript_expression "pbVar6[6]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (goto_statement "goto LAB_000126d0;" goto statement_identifier ;)) (expression_statement "bVar1 = pbVar6[7];" (assignment_expression "bVar1 = pbVar6[7]" identifier = (subscript_expression "pbVar6[7]" identifier [ number_literal ])) ;) }))) (if_statement "if (bVar1 == 0) {\n    return;\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_000126d0:\n  if (iVar7 == 9) {\n    return;\n  }" statement_identifier : (if_statement "if (iVar7 == 9) {\n    return;\n  }" if (parenthesized_expression "(iVar7 == 9)" ( (binary_expression "iVar7 == 9" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (return_statement "return;" return ;) })))
(translation_unit "int * parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int *piVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  \n  puVar1 = PTR___stack_chk_guard_000292ac;\n  puVar10 = PTR_rpl_opterr_00029154;\n  piVar6 = *(int **)PTR___stack_chk_guard_000292ac;\n  uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }\n  puVar7 = PTR_rpl_optind_00029140;\n  piVar2 = *(int **)puVar1;\n  *(undefined4 *)puVar10 = uVar8;\n  *(undefined4 *)puVar7 = 0;\n  if (piVar6 == piVar2) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }\n  iVar3 = 1;\n  piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);\n  (**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));\n  pcVar11 = *(code **)(puVar10 + 0x16e2c);\n  (*pcVar11)();\n  *piVar6 = 0;\n  piVar6[1] = 0;\n  piVar6[2] = 0;\n  piVar6[3] = 0;\n  piVar6[4] = 0;\n  piVar6[5] = 0;\n  piVar6[6] = 0;\n  piVar6[7] = 0;\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[10] = 0;\n  piVar6[0xb] = 0;\n  if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }\n  *piVar6 = iVar3;\n  return piVar6;\n}\n\n" (function_definition "int * parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int *piVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  \n  puVar1 = PTR___stack_chk_guard_000292ac;\n  puVar10 = PTR_rpl_opterr_00029154;\n  piVar6 = *(int **)PTR___stack_chk_guard_000292ac;\n  uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }\n  puVar7 = PTR_rpl_optind_00029140;\n  piVar2 = *(int **)puVar1;\n  *(undefined4 *)puVar10 = uVar8;\n  *(undefined4 *)puVar7 = 0;\n  if (piVar6 == piVar2) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }\n  iVar3 = 1;\n  piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);\n  (**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));\n  pcVar11 = *(code **)(puVar10 + 0x16e2c);\n  (*pcVar11)();\n  *piVar6 = 0;\n  piVar6[1] = 0;\n  piVar6[2] = 0;\n  piVar6[3] = 0;\n  piVar6[4] = 0;\n  piVar6[5] = 0;\n  piVar6[6] = 0;\n  piVar6[7] = 0;\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[10] = 0;\n  piVar6[0xb] = 0;\n  if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }\n  *piVar6 = iVar3;\n  return piVar6;\n}" primitive_type (pointer_declarator "* parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)" * (function_declarator "parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)" identifier (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "code *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int *piVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  \n  puVar1 = PTR___stack_chk_guard_000292ac;\n  puVar10 = PTR_rpl_opterr_00029154;\n  piVar6 = *(int **)PTR___stack_chk_guard_000292ac;\n  uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }\n  puVar7 = PTR_rpl_optind_00029140;\n  piVar2 = *(int **)puVar1;\n  *(undefined4 *)puVar10 = uVar8;\n  *(undefined4 *)puVar7 = 0;\n  if (piVar6 == piVar2) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }\n  iVar3 = 1;\n  piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);\n  (**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));\n  pcVar11 = *(code **)(puVar10 + 0x16e2c);\n  (*pcVar11)();\n  *piVar6 = 0;\n  piVar6[1] = 0;\n  piVar6[2] = 0;\n  piVar6[3] = 0;\n  piVar6[4] = 0;\n  piVar6[5] = 0;\n  piVar6[6] = 0;\n  piVar6[7] = 0;\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[10] = 0;\n  piVar6[0xb] = 0;\n  if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }\n  *piVar6 = iVar3;\n  return piVar6;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000292ac;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000292ac" identifier = identifier) ;) (expression_statement "puVar10 = PTR_rpl_opterr_00029154;" (assignment_expression "puVar10 = PTR_rpl_opterr_00029154" identifier = identifier) ;) (expression_statement "piVar6 = *(int **)PTR___stack_chk_guard_000292ac;" (assignment_expression "piVar6 = *(int **)PTR___stack_chk_guard_000292ac" identifier = (pointer_expression "*(int **)PTR___stack_chk_guard_000292ac" * (cast_expression "(int **)PTR___stack_chk_guard_000292ac" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;" (assignment_expression "uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154" identifier = (pointer_expression "*(undefined4 *)PTR_rpl_opterr_00029154" * (cast_expression "(undefined4 *)PTR_rpl_opterr_00029154" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)PTR_rpl_opterr_00029154 = 0;" (assignment_expression "*(undefined4 *)PTR_rpl_opterr_00029154 = 0" (pointer_expression "*(undefined4 *)PTR_rpl_opterr_00029154" * (cast_expression "(undefined4 *)PTR_rpl_opterr_00029154" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }" if (parenthesized_expression "((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1))" ( (binary_expression "(param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)" (parenthesized_expression "(param_1 == 2)" ( (binary_expression "param_1 == 2" identifier == number_literal) )) && (parenthesized_expression "(iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)" ( (comma_expression "iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1" (assignment_expression "iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0)" identifier = (call_expression "rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0)" identifier (argument_list "(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0)" ( number_literal , identifier , (binary_expression "PTR_00029104 + 0x75fc" identifier + number_literal) , (binary_expression "PTR_DAT_000290f8 + -0x705c" identifier + number_literal) , number_literal )))) , (binary_expression "iVar3 != -1" identifier != number_literal)) ))) )) (compound_statement "{\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }" { (if_statement "if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" if (parenthesized_expression "(iVar3 == 0x68)" ( (binary_expression "iVar3 == 0x68" identifier == number_literal) )) (compound_statement "{\n      (*param_6)(0);\n    }" { (expression_statement "(*param_6)(0);" (call_expression "(*param_6)(0)" (parenthesized_expression "(*param_6)" ( (pointer_expression "*param_6" * identifier) )) (argument_list "(0)" ( number_literal ))) ;) }) (else_clause "else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" else (if_statement "if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" if (parenthesized_expression "(iVar3 == 0x76)" ( (binary_expression "iVar3 == 0x76" identifier == number_literal) )) (compound_statement "{\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" { (expression_statement "version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);" (call_expression "version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018)" identifier (argument_list "(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018)" ( (pointer_expression "*(undefined4 *)PTR_stdout_00029234" * (cast_expression "(undefined4 *)PTR_stdout_00029234" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , identifier , identifier , identifier , (pointer_expression "&stack0x00000018" & identifier) ))) ;) (expression_statement "piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);" (assignment_expression "piVar6 = (int *)(*(code *)PTR_exit_00029260)(0)" identifier = (cast_expression "(int *)(*(code *)PTR_exit_00029260)(0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_exit_00029260)(0)" (parenthesized_expression "(*(code *)PTR_exit_00029260)" ( (pointer_expression "*(code *)PTR_exit_00029260" * (cast_expression "(code *)PTR_exit_00029260" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (return_statement "return piVar6;" return identifier ;) })))) })) (expression_statement "puVar7 = PTR_rpl_optind_00029140;" (assignment_expression "puVar7 = PTR_rpl_optind_00029140" identifier = identifier) ;) (expression_statement "piVar2 = *(int **)puVar1;" (assignment_expression "piVar2 = *(int **)puVar1" identifier = (pointer_expression "*(int **)puVar1" * (cast_expression "(int **)puVar1" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(undefined4 *)puVar10 = uVar8;" (assignment_expression "*(undefined4 *)puVar10 = uVar8" (pointer_expression "*(undefined4 *)puVar10" * (cast_expression "(undefined4 *)puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)puVar7 = 0;" (assignment_expression "*(undefined4 *)puVar7 = 0" (pointer_expression "*(undefined4 *)puVar7" * (cast_expression "(undefined4 *)puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (piVar6 == piVar2) {\n    return piVar2;\n  }" if (parenthesized_expression "(piVar6 == piVar2)" ( (binary_expression "piVar6 == piVar2" identifier == identifier) )) (compound_statement "{\n    return piVar2;\n  }" { (return_statement "return piVar2;" return identifier ;) })) (expression_statement "puVar10 = PTR___stack_chk_fail_0002929c;" (assignment_expression "puVar10 = PTR___stack_chk_fail_0002929c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0002929c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002929c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002929c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0002929c" * (cast_expression "(code *)PTR___stack_chk_fail_0002929c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }" if (parenthesized_expression "(puVar7 != (undefined *)0x0)" ( (binary_expression "puVar7 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }" { (expression_statement "iVar3 = (**(code **)(puVar10 + 0x16e58))();" (assignment_expression "iVar3 = (**(code **)(puVar10 + 0x16e58))()" identifier = (call_expression "(**(code **)(puVar10 + 0x16e58))()" (parenthesized_expression "(**(code **)(puVar10 + 0x16e58))" ( (pointer_expression "**(code **)(puVar10 + 0x16e58)" * (pointer_expression "*(code **)(puVar10 + 0x16e58)" * (cast_expression "(code **)(puVar10 + 0x16e58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e58)" ( (binary_expression "puVar10 + 0x16e58" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }" if (parenthesized_expression "(((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0))" ( (binary_expression "((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)" (parenthesized_expression "((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7))" ( (binary_expression "(iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)" ( (comma_expression "iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7" (assignment_expression "iVar9 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) , (binary_expression "6 < iVar9 - (int)puVar7" number_literal < (binary_expression "iVar9 - (int)puVar7" identifier - (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) && (parenthesized_expression "(iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)" ( (comma_expression "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7)" identifier = (call_expression "(**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7)" (parenthesized_expression "(**(code **)(puVar10 + 0x16e30))" ( (pointer_expression "**(code **)(puVar10 + 0x16e30)" * (pointer_expression "*(code **)(puVar10 + 0x16e30)" * (cast_expression "(code **)(puVar10 + 0x16e30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e30)" ( (binary_expression "puVar10 + 0x16e30" identifier + number_literal) ))))) )) (argument_list "(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7)" ( (binary_expression "iVar3 + -6" identifier + number_literal) , (binary_expression "*(int *)(puVar10 + 0x16d44) + 0x7648" (pointer_expression "*(int *)(puVar10 + 0x16d44)" * (cast_expression "(int *)(puVar10 + 0x16d44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16d44)" ( (binary_expression "puVar10 + 0x16d44" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }" { (expression_statement "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);" (assignment_expression "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3)" identifier = (call_expression "(**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3)" (parenthesized_expression "(**(code **)(puVar10 + 0x16e30))" ( (pointer_expression "**(code **)(puVar10 + 0x16e30)" * (pointer_expression "*(code **)(puVar10 + 0x16e30)" * (cast_expression "(code **)(puVar10 + 0x16e30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e30)" ( (binary_expression "puVar10 + 0x16e30" identifier + number_literal) ))))) )) (argument_list "(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3)" ( identifier , (binary_expression "*(int *)(puVar10 + 0x16d44) + 0x7650" (pointer_expression "*(int *)(puVar10 + 0x16d44)" * (cast_expression "(int *)(puVar10 + 0x16d44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16d44)" ( (binary_expression "puVar10 + 0x16d44" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }" { (expression_statement "**(int **)(puVar10 + 0x16d5c) = iVar9;" (assignment_expression "**(int **)(puVar10 + 0x16d5c) = iVar9" (pointer_expression "**(int **)(puVar10 + 0x16d5c)" * (pointer_expression "*(int **)(puVar10 + 0x16d5c)" * (cast_expression "(int **)(puVar10 + 0x16d5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16d5c)" ( (binary_expression "puVar10 + 0x16d5c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar6 = *(int **)(puVar10 + 0x16e64);" (assignment_expression "piVar6 = *(int **)(puVar10 + 0x16e64)" identifier = (pointer_expression "*(int **)(puVar10 + 0x16e64)" * (cast_expression "(int **)(puVar10 + 0x16e64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e64)" ( (binary_expression "puVar10 + 0x16e64" identifier + number_literal) ))))) ;) (expression_statement "*piVar6 = iVar9;" (assignment_expression "*piVar6 = iVar9" (pointer_expression "*piVar6" * identifier) = identifier) ;) (return_statement "return piVar6;" return identifier ;) })) (expression_statement "puVar7 = (undefined *)(iVar3 + 4);" (assignment_expression "puVar7 = (undefined *)(iVar3 + 4)" identifier = (cast_expression "(undefined *)(iVar3 + 4)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) ;) (expression_statement "**(undefined4 **)(puVar10 + 0x16e40) = puVar7;" (assignment_expression "**(undefined4 **)(puVar10 + 0x16e40) = puVar7" (pointer_expression "**(undefined4 **)(puVar10 + 0x16e40)" * (pointer_expression "*(undefined4 **)(puVar10 + 0x16e40)" * (cast_expression "(undefined4 **)(puVar10 + 0x16e40)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e40)" ( (binary_expression "puVar10 + 0x16e40" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "**(undefined4 **)(puVar10 + 0x16d5c) = puVar7;" (assignment_expression "**(undefined4 **)(puVar10 + 0x16d5c) = puVar7" (pointer_expression "**(undefined4 **)(puVar10 + 0x16d5c)" * (pointer_expression "*(undefined4 **)(puVar10 + 0x16d5c)" * (cast_expression "(undefined4 **)(puVar10 + 0x16d5c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16d5c)" ( (binary_expression "puVar10 + 0x16d5c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar6 = *(int **)(puVar10 + 0x16e64);" (assignment_expression "piVar6 = *(int **)(puVar10 + 0x16e64)" identifier = (pointer_expression "*(int **)(puVar10 + 0x16e64)" * (cast_expression "(int **)(puVar10 + 0x16e64)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e64)" ( (binary_expression "puVar10 + 0x16e64" identifier + number_literal) ))))) ;) (expression_statement "*piVar6 = (int)puVar7;" (assignment_expression "*piVar6 = (int)puVar7" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (return_statement "return piVar6;" return identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);" (assignment_expression "piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610)" identifier = (cast_expression "(int *)(*(int *)(puVar10 + 0x16d44) + 0x7610)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar10 + 0x16d44) + 0x7610)" ( (binary_expression "*(int *)(puVar10 + 0x16d44) + 0x7610" (pointer_expression "*(int *)(puVar10 + 0x16d44)" * (cast_expression "(int *)(puVar10 + 0x16d44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x16d44)" ( (binary_expression "puVar10 + 0x16d44" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));" (call_expression "(**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00))" (parenthesized_expression "(**(code **)(puVar10 + 0x16ecc))" ( (pointer_expression "**(code **)(puVar10 + 0x16ecc)" * (pointer_expression "*(code **)(puVar10 + 0x16ecc)" * (cast_expression "(code **)(puVar10 + 0x16ecc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16ecc)" ( (binary_expression "puVar10 + 0x16ecc" identifier + number_literal) ))))) )) (argument_list "(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00))" ( identifier , number_literal , number_literal , (pointer_expression "**(undefined4 **)(puVar10 + 0x16f00)" * (pointer_expression "*(undefined4 **)(puVar10 + 0x16f00)" * (cast_expression "(undefined4 **)(puVar10 + 0x16f00)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16f00)" ( (binary_expression "puVar10 + 0x16f00" identifier + number_literal) ))))) ))) ;) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x16e2c);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x16e2c)" identifier = (pointer_expression "*(code **)(puVar10 + 0x16e2c)" * (cast_expression "(code **)(puVar10 + 0x16e2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x16e2c)" ( (binary_expression "puVar10 + 0x16e2c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" * identifier) = number_literal) ;) (expression_statement "piVar6[1] = 0;" (assignment_expression "piVar6[1] = 0" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[2] = 0;" (assignment_expression "piVar6[2] = 0" (subscript_expression "piVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[3] = 0;" (assignment_expression "piVar6[3] = 0" (subscript_expression "piVar6[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[4] = 0;" (assignment_expression "piVar6[4] = 0" (subscript_expression "piVar6[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[5] = 0;" (assignment_expression "piVar6[5] = 0" (subscript_expression "piVar6[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[6] = 0;" (assignment_expression "piVar6[6] = 0" (subscript_expression "piVar6[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[7] = 0;" (assignment_expression "piVar6[7] = 0" (subscript_expression "piVar6[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[8] = 0;" (assignment_expression "piVar6[8] = 0" (subscript_expression "piVar6[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[9] = 0;" (assignment_expression "piVar6[9] = 0" (subscript_expression "piVar6[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[10] = 0;" (assignment_expression "piVar6[10] = 0" (subscript_expression "piVar6[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar6[0xb] = 0;" (assignment_expression "piVar6[0xb] = 0" (subscript_expression "piVar6[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }" if (parenthesized_expression "(iVar3 == 10)" ( (binary_expression "iVar3 == 10" identifier == number_literal) )) (compound_statement "{\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }" { (expression_statement "pcVar11 = *(code **)(pcVar11 + 0x16cfc);" (assignment_expression "pcVar11 = *(code **)(pcVar11 + 0x16cfc)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x16cfc)" * (cast_expression "(code **)(pcVar11 + 0x16cfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x16cfc)" ( (binary_expression "pcVar11 + 0x16cfc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5)" identifier = (cast_expression "(int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5)" (parenthesized_expression "(**(code **)(pcVar11 + 0x16d48))" ( (pointer_expression "**(code **)(pcVar11 + 0x16d48)" * (pointer_expression "*(code **)(pcVar11 + 0x16d48)" * (cast_expression "(code **)(pcVar11 + 0x16d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x16d48)" ( (binary_expression "pcVar11 + 0x16d48" identifier + number_literal) ))))) )) (argument_list "(0,piVar6,5)" ( number_literal , identifier , number_literal ))))) ;) (if_statement "if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }" if (parenthesized_expression "(piVar6 == piVar2)" ( (binary_expression "piVar6 == piVar2" identifier == identifier) )) (compound_statement "{\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }" { (expression_statement "pbVar5 = (byte *)locale_charset();" (assignment_expression "pbVar5 = (byte *)locale_charset()" identifier = (cast_expression "(byte *)locale_charset()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "locale_charset()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" if (parenthesized_expression "((*pbVar5 & 0xdf) == 0x55)" ( (binary_expression "(*pbVar5 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar5 & 0xdf)" ( (binary_expression "*pbVar5 & 0xdf" (pointer_expression "*pbVar5" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }" { (if_statement "if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }" if (parenthesized_expression "(((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0))))" ( (binary_expression "((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))" (parenthesized_expression "((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))" ( (binary_expression "(((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d)" (parenthesized_expression "(((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46))" ( (binary_expression "((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)" (parenthesized_expression "((pbVar5[1] & 0xdf) == 0x54)" ( (binary_expression "(pbVar5[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar5[1] & 0xdf)" ( (binary_expression "pbVar5[1] & 0xdf" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar5[2] & 0xdf) == 0x46)" ( (binary_expression "(pbVar5[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar5[2] & 0xdf)" ( (binary_expression "pbVar5[2] & 0xdf" (subscript_expression "pbVar5[2]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(pbVar5[3] == 0x2d)" ( (binary_expression "pbVar5[3] == 0x2d" (subscript_expression "pbVar5[3]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))" ( (parenthesized_expression "(pbVar5[4] == 0x38 && (pbVar5[5] == 0))" ( (binary_expression "pbVar5[4] == 0x38 && (pbVar5[5] == 0)" (binary_expression "pbVar5[4] == 0x38" (subscript_expression "pbVar5[4]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar5[5] == 0)" ( (binary_expression "pbVar5[5] == 0" (subscript_expression "pbVar5[5]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }" { (if_statement "if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }" if (parenthesized_expression "(*(char *)piVar2 != '`')" ( (binary_expression "*(char *)piVar2 != '`'" (pointer_expression "*(char *)piVar2" * (cast_expression "(char *)piVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }" { (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);" return (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7658)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7658" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);" return (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7664)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7664" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) ))) ;) })) }) (else_clause "else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" else (if_statement "if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" if (parenthesized_expression "((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0))))" ( (binary_expression "(((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))" (parenthesized_expression "(((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33))" ( (binary_expression "((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)" (parenthesized_expression "((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30))))))" ( (binary_expression "(((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))" (parenthesized_expression "(((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42))" ( (binary_expression "((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)" (parenthesized_expression "((*pbVar5 & 0xdf) == 0x47)" ( (binary_expression "(*pbVar5 & 0xdf) == 0x47" (parenthesized_expression "(*pbVar5 & 0xdf)" ( (binary_expression "*pbVar5 & 0xdf" (pointer_expression "*pbVar5" * identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((pbVar5[1] & 0xdf) == 0x42)" ( (binary_expression "(pbVar5[1] & 0xdf) == 0x42" (parenthesized_expression "(pbVar5[1] & 0xdf)" ( (binary_expression "pbVar5[1] & 0xdf" (subscript_expression "pbVar5[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))" ( (parenthesized_expression "(pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30))))" ( (binary_expression "pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))" (binary_expression "pbVar5[2] == 0x31" (subscript_expression "pbVar5[2]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))" ( (parenthesized_expression "(pbVar5[3] == 0x38 && (pbVar5[4] == 0x30))" ( (binary_expression "pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)" (binary_expression "pbVar5[3] == 0x38" (subscript_expression "pbVar5[3]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar5[4] == 0x30)" ( (binary_expression "pbVar5[4] == 0x30" (subscript_expression "pbVar5[4]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) ))) )) && (parenthesized_expression "(pbVar5[5] == 0x33)" ( (binary_expression "pbVar5[5] == 0x33" (subscript_expression "pbVar5[5]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))" ( (parenthesized_expression "(pbVar5[6] == 0x30 && (pbVar5[7] == 0))" ( (binary_expression "pbVar5[6] == 0x30 && (pbVar5[7] == 0)" (binary_expression "pbVar5[6] == 0x30" (subscript_expression "pbVar5[6]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar5[7] == 0)" ( (binary_expression "pbVar5[7] == 0" (subscript_expression "pbVar5[7]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" { (if_statement "if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }" if (parenthesized_expression "(*(char *)piVar2 != '`')" ( (binary_expression "*(char *)piVar2 != '`'" (pointer_expression "*(char *)piVar2" * (cast_expression "(char *)piVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'`'" ' character ')) )) (compound_statement "{\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }" { (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);" return (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x765c)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x765c" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);" return (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7660)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7660" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) ))) ;) })))) (if_statement "if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }" if (parenthesized_expression "(iVar3 != 9)" ( (binary_expression "iVar3 != 9" identifier != number_literal) )) (compound_statement "{\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }" { (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);" return (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7668)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7668" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);" (assignment_expression "piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654)" identifier = (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7654)" ( (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7654" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" * (cast_expression "(int *)(pcVar11 + 0x16bac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x16bac)" ( (binary_expression "pcVar11 + 0x16bac" identifier + number_literal) )))) + number_literal) )))) ;) })) (return_statement "return piVar2;" return identifier ;) })) (expression_statement "*piVar6 = iVar3;" (assignment_expression "*piVar6 = iVar3" (pointer_expression "*piVar6" * identifier) = identifier) ;) (return_statement "return piVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (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 ( LIT ))))) ;) (return_statement return IDENT ;) })))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression LIT < (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))) )) && (parenthesized_expression ( (comma_expression (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 ( (binary_expression IDENT + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) , (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 , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (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) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT , (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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 ( LIT , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != (char_literal ' character ')) )) (compound_statement { (return_statement return (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 (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) ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != (char_literal ' character ')) )) (compound_statement { (return_statement return (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 (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) ))) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (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) ))) ;) })) (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 ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })))
(function_definition "int * parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int *piVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  \n  puVar1 = PTR___stack_chk_guard_000292ac;\n  puVar10 = PTR_rpl_opterr_00029154;\n  piVar6 = *(int **)PTR___stack_chk_guard_000292ac;\n  uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }\n  puVar7 = PTR_rpl_optind_00029140;\n  piVar2 = *(int **)puVar1;\n  *(undefined4 *)puVar10 = uVar8;\n  *(undefined4 *)puVar7 = 0;\n  if (piVar6 == piVar2) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }\n  iVar3 = 1;\n  piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);\n  (**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));\n  pcVar11 = *(code **)(puVar10 + 0x16e2c);\n  (*pcVar11)();\n  *piVar6 = 0;\n  piVar6[1] = 0;\n  piVar6[2] = 0;\n  piVar6[3] = 0;\n  piVar6[4] = 0;\n  piVar6[5] = 0;\n  piVar6[6] = 0;\n  piVar6[7] = 0;\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[10] = 0;\n  piVar6[0xb] = 0;\n  if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }\n  *piVar6 = iVar3;\n  return piVar6;\n}" (primitive_type "int") (pointer_declarator "* parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)" (* "*") (function_declarator "parse_long_options(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)" (identifier "parse_long_options") (parameter_list "(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n                        undefined4 param_5,code *param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "code *param_6" (type_identifier "code") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int *piVar6;\n  undefined *puVar7;\n  undefined4 uVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  \n  puVar1 = PTR___stack_chk_guard_000292ac;\n  puVar10 = PTR_rpl_opterr_00029154;\n  piVar6 = *(int **)PTR___stack_chk_guard_000292ac;\n  uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;\n  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;\n  if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }\n  puVar7 = PTR_rpl_optind_00029140;\n  piVar2 = *(int **)puVar1;\n  *(undefined4 *)puVar10 = uVar8;\n  *(undefined4 *)puVar7 = 0;\n  if (piVar6 == piVar2) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_0002929c;\n  (*(code *)PTR___stack_chk_fail_0002929c)();\n  if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }\n  iVar3 = 1;\n  piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);\n  (**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));\n  pcVar11 = *(code **)(puVar10 + 0x16e2c);\n  (*pcVar11)();\n  *piVar6 = 0;\n  piVar6[1] = 0;\n  piVar6[2] = 0;\n  piVar6[3] = 0;\n  piVar6[4] = 0;\n  piVar6[5] = 0;\n  piVar6[6] = 0;\n  piVar6[7] = 0;\n  piVar6[8] = 0;\n  piVar6[9] = 0;\n  piVar6[10] = 0;\n  piVar6[0xb] = 0;\n  if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }\n  *piVar6 = iVar3;\n  return piVar6;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_000292ac;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000292ac" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_000292ac")) (; ";")) (expression_statement "puVar10 = PTR_rpl_opterr_00029154;" (assignment_expression "puVar10 = PTR_rpl_opterr_00029154" (identifier "puVar10") (= "=") (identifier "PTR_rpl_opterr_00029154")) (; ";")) (expression_statement "piVar6 = *(int **)PTR___stack_chk_guard_000292ac;" (assignment_expression "piVar6 = *(int **)PTR___stack_chk_guard_000292ac" (identifier "piVar6") (= "=") (pointer_expression "*(int **)PTR___stack_chk_guard_000292ac" (* "*") (cast_expression "(int **)PTR___stack_chk_guard_000292ac" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_000292ac")))) (; ";")) (expression_statement "uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;" (assignment_expression "uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)PTR_rpl_opterr_00029154" (* "*") (cast_expression "(undefined4 *)PTR_rpl_opterr_00029154" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_rpl_opterr_00029154")))) (; ";")) (expression_statement "*(undefined4 *)PTR_rpl_opterr_00029154 = 0;" (assignment_expression "*(undefined4 *)PTR_rpl_opterr_00029154 = 0" (pointer_expression "*(undefined4 *)PTR_rpl_opterr_00029154" (* "*") (cast_expression "(undefined4 *)PTR_rpl_opterr_00029154" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_rpl_opterr_00029154"))) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)) {\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }" (if "if") (parenthesized_expression "((param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1))" (( "(") (binary_expression "(param_1 == 2) &&\n     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)" (parenthesized_expression "(param_1 == 2)" (( "(") (binary_expression "param_1 == 2" (identifier "param_1") (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1)" (( "(") (comma_expression "iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),\n     iVar3 != -1" (assignment_expression "iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0)" (identifier "iVar3") (= "=") (call_expression "rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0)" (identifier "rpl_getopt_long") (argument_list "(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0)" (( "(") (number_literal "2") (, ",") (identifier "param_2") (, ",") (binary_expression "PTR_00029104 + 0x75fc" (identifier "PTR_00029104") (+ "+") (number_literal "0x75fc")) (, ",") (binary_expression "PTR_DAT_000290f8 + -0x705c" (identifier "PTR_DAT_000290f8") (+ "+") (number_literal "-0x705c")) (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar3 != -1" (identifier "iVar3") (!= "!=") (number_literal "-1"))) () ")"))) () ")")) (compound_statement "{\n    if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }\n  }" ({ "{") (if_statement "if (iVar3 == 0x68) {\n      (*param_6)(0);\n    }\n    else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0x68)" (( "(") (binary_expression "iVar3 == 0x68" (identifier "iVar3") (== "==") (number_literal "0x68")) () ")")) (compound_statement "{\n      (*param_6)(0);\n    }" ({ "{") (expression_statement "(*param_6)(0);" (call_expression "(*param_6)(0)" (parenthesized_expression "(*param_6)" (( "(") (pointer_expression "*param_6" (* "*") (identifier "param_6")) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" (else "else") (if_statement "if (iVar3 == 0x76) {\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0x76)" (( "(") (binary_expression "iVar3 == 0x76" (identifier "iVar3") (== "==") (number_literal "0x76")) () ")")) (compound_statement "{\n      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);\n      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);\n      return piVar6;\n    }" ({ "{") (expression_statement "version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);" (call_expression "version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018)" (identifier "version_etc_va") (argument_list "(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018)" (( "(") (pointer_expression "*(undefined4 *)PTR_stdout_00029234" (* "*") (cast_expression "(undefined4 *)PTR_stdout_00029234" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_00029234"))) (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (pointer_expression "&stack0x00000018" (& "&") (identifier "stack0x00000018")) () ")"))) (; ";")) (expression_statement "piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);" (assignment_expression "piVar6 = (int *)(*(code *)PTR_exit_00029260)(0)" (identifier "piVar6") (= "=") (cast_expression "(int *)(*(code *)PTR_exit_00029260)(0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_exit_00029260)(0)" (parenthesized_expression "(*(code *)PTR_exit_00029260)" (( "(") (pointer_expression "*(code *)PTR_exit_00029260" (* "*") (cast_expression "(code *)PTR_exit_00029260" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_exit_00029260"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (return_statement "return piVar6;" (return "return") (identifier "piVar6") (; ";")) (} "}"))))) (} "}"))) (expression_statement "puVar7 = PTR_rpl_optind_00029140;" (assignment_expression "puVar7 = PTR_rpl_optind_00029140" (identifier "puVar7") (= "=") (identifier "PTR_rpl_optind_00029140")) (; ";")) (expression_statement "piVar2 = *(int **)puVar1;" (assignment_expression "piVar2 = *(int **)puVar1" (identifier "piVar2") (= "=") (pointer_expression "*(int **)puVar1" (* "*") (cast_expression "(int **)puVar1" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (expression_statement "*(undefined4 *)puVar10 = uVar8;" (assignment_expression "*(undefined4 *)puVar10 = uVar8" (pointer_expression "*(undefined4 *)puVar10" (* "*") (cast_expression "(undefined4 *)puVar10" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10"))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)puVar7 = 0;" (assignment_expression "*(undefined4 *)puVar7 = 0" (pointer_expression "*(undefined4 *)puVar7" (* "*") (cast_expression "(undefined4 *)puVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar6 == piVar2) {\n    return piVar2;\n  }" (if "if") (parenthesized_expression "(piVar6 == piVar2)" (( "(") (binary_expression "piVar6 == piVar2" (identifier "piVar6") (== "==") (identifier "piVar2")) () ")")) (compound_statement "{\n    return piVar2;\n  }" ({ "{") (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "puVar10 = PTR___stack_chk_fail_0002929c;" (assignment_expression "puVar10 = PTR___stack_chk_fail_0002929c" (identifier "puVar10") (= "=") (identifier "PTR___stack_chk_fail_0002929c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0002929c)();" (call_expression "(*(code *)PTR___stack_chk_fail_0002929c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0002929c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0002929c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0002929c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0002929c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (puVar7 != (undefined *)0x0) {\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined *)0x0)" (( "(") (binary_expression "puVar7 != (undefined *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar3 = (**(code **)(puVar10 + 0x16e58))();\n    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }\n    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;\n    piVar6 = *(int **)(puVar10 + 0x16e64);\n    *piVar6 = (int)puVar7;\n    return piVar6;\n  }" ({ "{") (expression_statement "iVar3 = (**(code **)(puVar10 + 0x16e58))();" (assignment_expression "iVar3 = (**(code **)(puVar10 + 0x16e58))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar10 + 0x16e58))()" (parenthesized_expression "(**(code **)(puVar10 + 0x16e58))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x16e58)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x16e58)" (* "*") (cast_expression "(code **)(puVar10 + 0x16e58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16e58)" (( "(") (binary_expression "puVar10 + 0x16e58" (identifier "puVar10") (+ "+") (number_literal "0x16e58")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)) {\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }" (if "if") (parenthesized_expression "(((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0))" (( "(") (binary_expression "((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&\n       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)" (parenthesized_expression "((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7))" (( "(") (binary_expression "(iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)" (( "(") (comma_expression "iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7" (assignment_expression "iVar9 = iVar3 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (, ",") (binary_expression "6 < iVar9 - (int)puVar7" (number_literal "6") (< "<") (binary_expression "iVar9 - (int)puVar7" (identifier "iVar9") (- "-") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0)" (( "(") (comma_expression "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),\n       iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7)" (parenthesized_expression "(**(code **)(puVar10 + 0x16e30))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x16e30)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x16e30)" (* "*") (cast_expression "(code **)(puVar10 + 0x16e30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16e30)" (( "(") (binary_expression "puVar10 + 0x16e30" (identifier "puVar10") (+ "+") (number_literal "0x16e30")) () ")"))))) () ")")) (argument_list "(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7)" (( "(") (binary_expression "iVar3 + -6" (identifier "iVar3") (+ "+") (number_literal "-6")) (, ",") (binary_expression "*(int *)(puVar10 + 0x16d44) + 0x7648" (pointer_expression "*(int *)(puVar10 + 0x16d44)" (* "*") (cast_expression "(int *)(puVar10 + 0x16d44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16d44)" (( "(") (binary_expression "puVar10 + 0x16d44" (identifier "puVar10") (+ "+") (number_literal "0x16d44")) () ")")))) (+ "+") (number_literal "0x7648")) (, ",") (number_literal "7") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);\n      if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }\n      puVar7 = (undefined *)(iVar3 + 4);\n      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;\n    }" ({ "{") (expression_statement "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);" (assignment_expression "iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3)" (parenthesized_expression "(**(code **)(puVar10 + 0x16e30))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x16e30)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x16e30)" (* "*") (cast_expression "(code **)(puVar10 + 0x16e30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16e30)" (( "(") (binary_expression "puVar10 + 0x16e30" (identifier "puVar10") (+ "+") (number_literal "0x16e30")) () ")"))))) () ")")) (argument_list "(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3)" (( "(") (identifier "iVar9") (, ",") (binary_expression "*(int *)(puVar10 + 0x16d44) + 0x7650" (pointer_expression "*(int *)(puVar10 + 0x16d44)" (* "*") (cast_expression "(int *)(puVar10 + 0x16d44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16d44)" (( "(") (binary_expression "puVar10 + 0x16d44" (identifier "puVar10") (+ "+") (number_literal "0x16d44")) () ")")))) (+ "+") (number_literal "0x7650")) (, ",") (number_literal "3") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        **(int **)(puVar10 + 0x16d5c) = iVar9;\n        piVar6 = *(int **)(puVar10 + 0x16e64);\n        *piVar6 = iVar9;\n        return piVar6;\n      }" ({ "{") (expression_statement "**(int **)(puVar10 + 0x16d5c) = iVar9;" (assignment_expression "**(int **)(puVar10 + 0x16d5c) = iVar9" (pointer_expression "**(int **)(puVar10 + 0x16d5c)" (* "*") (pointer_expression "*(int **)(puVar10 + 0x16d5c)" (* "*") (cast_expression "(int **)(puVar10 + 0x16d5c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16d5c)" (( "(") (binary_expression "puVar10 + 0x16d5c" (identifier "puVar10") (+ "+") (number_literal "0x16d5c")) () ")"))))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "piVar6 = *(int **)(puVar10 + 0x16e64);" (assignment_expression "piVar6 = *(int **)(puVar10 + 0x16e64)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(puVar10 + 0x16e64)" (* "*") (cast_expression "(int **)(puVar10 + 0x16e64)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16e64)" (( "(") (binary_expression "puVar10 + 0x16e64" (identifier "puVar10") (+ "+") (number_literal "0x16e64")) () ")"))))) (; ";")) (expression_statement "*piVar6 = iVar9;" (assignment_expression "*piVar6 = iVar9" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (identifier "iVar9")) (; ";")) (return_statement "return piVar6;" (return "return") (identifier "piVar6") (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined *)(iVar3 + 4);" (assignment_expression "puVar7 = (undefined *)(iVar3 + 4)" (identifier "puVar7") (= "=") (cast_expression "(undefined *)(iVar3 + 4)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "**(undefined4 **)(puVar10 + 0x16e40) = puVar7;" (assignment_expression "**(undefined4 **)(puVar10 + 0x16e40) = puVar7" (pointer_expression "**(undefined4 **)(puVar10 + 0x16e40)" (* "*") (pointer_expression "*(undefined4 **)(puVar10 + 0x16e40)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0x16e40)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16e40)" (( "(") (binary_expression "puVar10 + 0x16e40" (identifier "puVar10") (+ "+") (number_literal "0x16e40")) () ")"))))) (= "=") (identifier "puVar7")) (; ";")) (} "}"))) (expression_statement "**(undefined4 **)(puVar10 + 0x16d5c) = puVar7;" (assignment_expression "**(undefined4 **)(puVar10 + 0x16d5c) = puVar7" (pointer_expression "**(undefined4 **)(puVar10 + 0x16d5c)" (* "*") (pointer_expression "*(undefined4 **)(puVar10 + 0x16d5c)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0x16d5c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16d5c)" (( "(") (binary_expression "puVar10 + 0x16d5c" (identifier "puVar10") (+ "+") (number_literal "0x16d5c")) () ")"))))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "piVar6 = *(int **)(puVar10 + 0x16e64);" (assignment_expression "piVar6 = *(int **)(puVar10 + 0x16e64)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(puVar10 + 0x16e64)" (* "*") (cast_expression "(int **)(puVar10 + 0x16e64)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16e64)" (( "(") (binary_expression "puVar10 + 0x16e64" (identifier "puVar10") (+ "+") (number_literal "0x16e64")) () ")"))))) (; ";")) (expression_statement "*piVar6 = (int)puVar7;" (assignment_expression "*piVar6 = (int)puVar7" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) (; ";")) (return_statement "return piVar6;" (return "return") (identifier "piVar6") (; ";")) (} "}"))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);" (assignment_expression "piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610)" (identifier "piVar6") (= "=") (cast_expression "(int *)(*(int *)(puVar10 + 0x16d44) + 0x7610)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar10 + 0x16d44) + 0x7610)" (( "(") (binary_expression "*(int *)(puVar10 + 0x16d44) + 0x7610" (pointer_expression "*(int *)(puVar10 + 0x16d44)" (* "*") (cast_expression "(int *)(puVar10 + 0x16d44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x16d44)" (( "(") (binary_expression "puVar10 + 0x16d44" (identifier "puVar10") (+ "+") (number_literal "0x16d44")) () ")")))) (+ "+") (number_literal "0x7610")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));" (call_expression "(**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00))" (parenthesized_expression "(**(code **)(puVar10 + 0x16ecc))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x16ecc)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x16ecc)" (* "*") (cast_expression "(code **)(puVar10 + 0x16ecc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16ecc)" (( "(") (binary_expression "puVar10 + 0x16ecc" (identifier "puVar10") (+ "+") (number_literal "0x16ecc")) () ")"))))) () ")")) (argument_list "(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00))" (( "(") (identifier "piVar6") (, ",") (number_literal "1") (, ",") (number_literal "0x37") (, ",") (pointer_expression "**(undefined4 **)(puVar10 + 0x16f00)" (* "*") (pointer_expression "*(undefined4 **)(puVar10 + 0x16f00)" (* "*") (cast_expression "(undefined4 **)(puVar10 + 0x16f00)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16f00)" (( "(") (binary_expression "puVar10 + 0x16f00" (identifier "puVar10") (+ "+") (number_literal "0x16f00")) () ")"))))) () ")"))) (; ";")) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x16e2c);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x16e2c)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(puVar10 + 0x16e2c)" (* "*") (cast_expression "(code **)(puVar10 + 0x16e2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x16e2c)" (( "(") (binary_expression "puVar10 + 0x16e2c" (identifier "puVar10") (+ "+") (number_literal "0x16e2c")) () ")"))))) (; ";")) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*piVar6 = 0;" (assignment_expression "*piVar6 = 0" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[1] = 0;" (assignment_expression "piVar6[1] = 0" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[2] = 0;" (assignment_expression "piVar6[2] = 0" (subscript_expression "piVar6[2]" (identifier "piVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[3] = 0;" (assignment_expression "piVar6[3] = 0" (subscript_expression "piVar6[3]" (identifier "piVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[4] = 0;" (assignment_expression "piVar6[4] = 0" (subscript_expression "piVar6[4]" (identifier "piVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[5] = 0;" (assignment_expression "piVar6[5] = 0" (subscript_expression "piVar6[5]" (identifier "piVar6") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[6] = 0;" (assignment_expression "piVar6[6] = 0" (subscript_expression "piVar6[6]" (identifier "piVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[7] = 0;" (assignment_expression "piVar6[7] = 0" (subscript_expression "piVar6[7]" (identifier "piVar6") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[8] = 0;" (assignment_expression "piVar6[8] = 0" (subscript_expression "piVar6[8]" (identifier "piVar6") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[9] = 0;" (assignment_expression "piVar6[9] = 0" (subscript_expression "piVar6[9]" (identifier "piVar6") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[10] = 0;" (assignment_expression "piVar6[10] = 0" (subscript_expression "piVar6[10]" (identifier "piVar6") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar6[0xb] = 0;" (assignment_expression "piVar6[0xb] = 0" (subscript_expression "piVar6[0xb]" (identifier "piVar6") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar3 == 10) {\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }" (if "if") (parenthesized_expression "(iVar3 == 10)" (( "(") (binary_expression "iVar3 == 10" (identifier "iVar3") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n    pcVar11 = *(code **)(pcVar11 + 0x16cfc);\n    (*pcVar11)();\n    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);\n    if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }\n    return piVar2;\n  }" ({ "{") (expression_statement "pcVar11 = *(code **)(pcVar11 + 0x16cfc);" (assignment_expression "pcVar11 = *(code **)(pcVar11 + 0x16cfc)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(pcVar11 + 0x16cfc)" (* "*") (cast_expression "(code **)(pcVar11 + 0x16cfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x16cfc)" (( "(") (binary_expression "pcVar11 + 0x16cfc" (identifier "pcVar11") (+ "+") (number_literal "0x16cfc")) () ")"))))) (; ";")) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);" (assignment_expression "piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5)" (identifier "piVar2") (= "=") (cast_expression "(int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5)" (parenthesized_expression "(**(code **)(pcVar11 + 0x16d48))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x16d48)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x16d48)" (* "*") (cast_expression "(code **)(pcVar11 + 0x16d48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x16d48)" (( "(") (binary_expression "pcVar11 + 0x16d48" (identifier "pcVar11") (+ "+") (number_literal "0x16d48")) () ")"))))) () ")")) (argument_list "(0,piVar6,5)" (( "(") (number_literal "0") (, ",") (identifier "piVar6") (, ",") (number_literal "5") () ")"))))) (; ";")) (if_statement "if (piVar6 == piVar2) {\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }" (if "if") (parenthesized_expression "(piVar6 == piVar2)" (( "(") (binary_expression "piVar6 == piVar2" (identifier "piVar6") (== "==") (identifier "piVar2")) () ")")) (compound_statement "{\n      pbVar5 = (byte *)locale_charset();\n      if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }\n      if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }\n      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);\n    }" ({ "{") (expression_statement "pbVar5 = (byte *)locale_charset();" (assignment_expression "pbVar5 = (byte *)locale_charset()" (identifier "pbVar5") (= "=") (cast_expression "(byte *)locale_charset()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "locale_charset()" (identifier "locale_charset") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((*pbVar5 & 0xdf) == 0x55) {\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }\n      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" (if "if") (parenthesized_expression "((*pbVar5 & 0xdf) == 0x55)" (( "(") (binary_expression "(*pbVar5 & 0xdf) == 0x55" (parenthesized_expression "(*pbVar5 & 0xdf)" (( "(") (binary_expression "*pbVar5 & 0xdf" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x55")) () ")")) (compound_statement "{\n        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }\n      }" ({ "{") (if_statement "if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }" (if "if") (parenthesized_expression "(((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0))))" (( "(") (binary_expression "((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))\n           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))" (parenthesized_expression "((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))" (( "(") (binary_expression "(((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d)" (parenthesized_expression "(((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46))" (( "(") (binary_expression "((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)" (parenthesized_expression "((pbVar5[1] & 0xdf) == 0x54)" (( "(") (binary_expression "(pbVar5[1] & 0xdf) == 0x54" (parenthesized_expression "(pbVar5[1] & 0xdf)" (( "(") (binary_expression "pbVar5[1] & 0xdf" (subscript_expression "pbVar5[1]" (identifier "pbVar5") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x54")) () ")")) (&& "&&") (parenthesized_expression "((pbVar5[2] & 0xdf) == 0x46)" (( "(") (binary_expression "(pbVar5[2] & 0xdf) == 0x46" (parenthesized_expression "(pbVar5[2] & 0xdf)" (( "(") (binary_expression "pbVar5[2] & 0xdf" (subscript_expression "pbVar5[2]" (identifier "pbVar5") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x46")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar5[3] == 0x2d)" (( "(") (binary_expression "pbVar5[3] == 0x2d" (subscript_expression "pbVar5[3]" (identifier "pbVar5") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0x2d")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))" (( "(") (parenthesized_expression "(pbVar5[4] == 0x38 && (pbVar5[5] == 0))" (( "(") (binary_expression "pbVar5[4] == 0x38 && (pbVar5[5] == 0)" (binary_expression "pbVar5[4] == 0x38" (subscript_expression "pbVar5[4]" (identifier "pbVar5") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x38")) (&& "&&") (parenthesized_expression "(pbVar5[5] == 0)" (( "(") (binary_expression "pbVar5[5] == 0" (subscript_expression "pbVar5[5]" (identifier "pbVar5") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);\n        }" ({ "{") (if_statement "if (*(char *)piVar2 != '`') {\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }" (if "if") (parenthesized_expression "(*(char *)piVar2 != '`')" (( "(") (binary_expression "*(char *)piVar2 != '`'" (pointer_expression "*(char *)piVar2" (* "*") (cast_expression "(char *)piVar2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar2"))) (!= "!=") (char_literal "'`'" (' "'") (character "`") (' "'"))) () ")")) (compound_statement "{\n            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);\n          }" ({ "{") (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);" (return "return") (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7658)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7658" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" (* "*") (cast_expression "(int *)(pcVar11 + 0x16bac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x16bac)" (( "(") (binary_expression "pcVar11 + 0x16bac" (identifier "pcVar11") (+ "+") (number_literal "0x16bac")) () ")")))) (+ "+") (number_literal "0x7658")) () ")"))) (; ";")) (} "}"))) (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);" (return "return") (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7664)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7664" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" (* "*") (cast_expression "(int *)(pcVar11 + 0x16bac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x16bac)" (( "(") (binary_expression "pcVar11 + 0x16bac" (identifier "pcVar11") (+ "+") (number_literal "0x16bac")) () ")")))) (+ "+") (number_literal "0x7664")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" (else "else") (if_statement "if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" (if "if") (parenthesized_expression "((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0))))" (( "(") (binary_expression "(((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))" (parenthesized_expression "(((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33))" (( "(") (binary_expression "((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&\n               (pbVar5[5] == 0x33)" (parenthesized_expression "((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30))))))" (( "(") (binary_expression "(((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&\n                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))" (parenthesized_expression "(((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42))" (( "(") (binary_expression "((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)" (parenthesized_expression "((*pbVar5 & 0xdf) == 0x47)" (( "(") (binary_expression "(*pbVar5 & 0xdf) == 0x47" (parenthesized_expression "(*pbVar5 & 0xdf)" (( "(") (binary_expression "*pbVar5 & 0xdf" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x47")) () ")")) (&& "&&") (parenthesized_expression "((pbVar5[1] & 0xdf) == 0x42)" (( "(") (binary_expression "(pbVar5[1] & 0xdf) == 0x42" (parenthesized_expression "(pbVar5[1] & 0xdf)" (( "(") (binary_expression "pbVar5[1] & 0xdf" (subscript_expression "pbVar5[1]" (identifier "pbVar5") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x42")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))" (( "(") (parenthesized_expression "(pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30))))" (( "(") (binary_expression "pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))" (binary_expression "pbVar5[2] == 0x31" (subscript_expression "pbVar5[2]" (identifier "pbVar5") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x31")) (&& "&&") (parenthesized_expression "((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))" (( "(") (parenthesized_expression "(pbVar5[3] == 0x38 && (pbVar5[4] == 0x30))" (( "(") (binary_expression "pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)" (binary_expression "pbVar5[3] == 0x38" (subscript_expression "pbVar5[3]" (identifier "pbVar5") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0x38")) (&& "&&") (parenthesized_expression "(pbVar5[4] == 0x30)" (( "(") (binary_expression "pbVar5[4] == 0x30" (subscript_expression "pbVar5[4]" (identifier "pbVar5") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x30")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar5[5] == 0x33)" (( "(") (binary_expression "pbVar5[5] == 0x33" (subscript_expression "pbVar5[5]" (identifier "pbVar5") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0x33")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))" (( "(") (parenthesized_expression "(pbVar5[6] == 0x30 && (pbVar5[7] == 0))" (( "(") (binary_expression "pbVar5[6] == 0x30 && (pbVar5[7] == 0)" (binary_expression "pbVar5[6] == 0x30" (subscript_expression "pbVar5[6]" (identifier "pbVar5") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "0x30")) (&& "&&") (parenthesized_expression "(pbVar5[7] == 0)" (( "(") (binary_expression "pbVar5[7] == 0" (subscript_expression "pbVar5[7]" (identifier "pbVar5") ([ "[") (number_literal "7") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);\n      }" ({ "{") (if_statement "if (*(char *)piVar2 != '`') {\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }" (if "if") (parenthesized_expression "(*(char *)piVar2 != '`')" (( "(") (binary_expression "*(char *)piVar2 != '`'" (pointer_expression "*(char *)piVar2" (* "*") (cast_expression "(char *)piVar2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar2"))) (!= "!=") (char_literal "'`'" (' "'") (character "`") (' "'"))) () ")")) (compound_statement "{\n          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);\n        }" ({ "{") (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);" (return "return") (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x765c)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x765c" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" (* "*") (cast_expression "(int *)(pcVar11 + 0x16bac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x16bac)" (( "(") (binary_expression "pcVar11 + 0x16bac" (identifier "pcVar11") (+ "+") (number_literal "0x16bac")) () ")")))) (+ "+") (number_literal "0x765c")) () ")"))) (; ";")) (} "}"))) (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);" (return "return") (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7660)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7660" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" (* "*") (cast_expression "(int *)(pcVar11 + 0x16bac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x16bac)" (( "(") (binary_expression "pcVar11 + 0x16bac" (identifier "pcVar11") (+ "+") (number_literal "0x16bac")) () ")")))) (+ "+") (number_literal "0x7660")) () ")"))) (; ";")) (} "}"))))) (if_statement "if (iVar3 != 9) {\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }" (if "if") (parenthesized_expression "(iVar3 != 9)" (( "(") (binary_expression "iVar3 != 9" (identifier "iVar3") (!= "!=") (number_literal "9")) () ")")) (compound_statement "{\n        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);\n      }" ({ "{") (return_statement "return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);" (return "return") (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7668)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7668" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" (* "*") (cast_expression "(int *)(pcVar11 + 0x16bac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x16bac)" (( "(") (binary_expression "pcVar11 + 0x16bac" (identifier "pcVar11") (+ "+") (number_literal "0x16bac")) () ")")))) (+ "+") (number_literal "0x7668")) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);" (assignment_expression "piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654)" (identifier "piVar2") (= "=") (cast_expression "(int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x16bac) + 0x7654)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x16bac) + 0x7654" (pointer_expression "*(int *)(pcVar11 + 0x16bac)" (* "*") (cast_expression "(int *)(pcVar11 + 0x16bac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x16bac)" (( "(") (binary_expression "pcVar11 + 0x16bac" (identifier "pcVar11") (+ "+") (number_literal "0x16bac")) () ")")))) (+ "+") (number_literal "0x7654")) () ")")))) (; ";")) (} "}"))) (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (expression_statement "*piVar6 = iVar3;" (assignment_expression "*piVar6 = iVar3" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (identifier "iVar3")) (; ";")) (return_statement "return piVar6;" (return "return") (identifier "piVar6") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (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: (identifier))) arguments: (argument_list (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier))))) (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 (number_literal)))))) (return_statement (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) right: (parenthesized_expression (comma_expression left: (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 (binary_expression left: (identifier) right: (number_literal)) (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)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal) (number_literal) (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))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (identifier) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (char_literal (character)))) consequence: (compound_statement (return_statement (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))))))) (return_statement (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)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (char_literal (character)))) consequence: (compound_statement (return_statement (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))))))) (return_statement (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (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))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (identifier)))))

int * MASKED(int param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
                        undefined4 param_5,code *param_6)

{
  undefined *puVar1;
  int *piVar2;
  int iVar3;
  int iVar4;
  byte *pbVar5;
  int *piVar6;
  undefined *puVar7;
  undefined4 uVar8;
  int iVar9;
  undefined *puVar10;
  code *pcVar11;
  
  puVar1 = PTR___stack_chk_guard_000292ac;
  puVar10 = PTR_rpl_opterr_00029154;
  piVar6 = *(int **)PTR___stack_chk_guard_000292ac;
  uVar8 = *(undefined4 *)PTR_rpl_opterr_00029154;
  *(undefined4 *)PTR_rpl_opterr_00029154 = 0;
  if ((param_1 == 2) &&
     (iVar3 = rpl_getopt_long(2,param_2,PTR_00029104 + 0x75fc,PTR_DAT_000290f8 + -0x705c,0),
     iVar3 != -1)) {
    if (iVar3 == 0x68) {
      (*param_6)(0);
    }
    else if (iVar3 == 0x76) {
      version_etc_va(*(undefined4 *)PTR_stdout_00029234,param_3,param_4,param_5,&stack0x00000018);
      piVar6 = (int *)(*(code *)PTR_exit_00029260)(0);
      return piVar6;
    }
  }
  puVar7 = PTR_rpl_optind_00029140;
  piVar2 = *(int **)puVar1;
  *(undefined4 *)puVar10 = uVar8;
  *(undefined4 *)puVar7 = 0;
  if (piVar6 == piVar2) {
    return piVar2;
  }
  puVar10 = PTR___stack_chk_fail_0002929c;
  (*(code *)PTR___stack_chk_fail_0002929c)();
  if (puVar7 != (undefined *)0x0) {
    iVar3 = (**(code **)(puVar10 + 0x16e58))();
    if (((iVar3 != 0) && (iVar9 = iVar3 + 1, 6 < iVar9 - (int)puVar7)) &&
       (iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar3 + -6,*(int *)(puVar10 + 0x16d44) + 0x7648,7),
       iVar4 == 0)) {
      iVar4 = (**(code **)(puVar10 + 0x16e30))(iVar9,*(int *)(puVar10 + 0x16d44) + 0x7650,3);
      if (iVar4 != 0) {
        **(int **)(puVar10 + 0x16d5c) = iVar9;
        piVar6 = *(int **)(puVar10 + 0x16e64);
        *piVar6 = iVar9;
        return piVar6;
      }
      puVar7 = (undefined *)(iVar3 + 4);
      **(undefined4 **)(puVar10 + 0x16e40) = puVar7;
    }
    **(undefined4 **)(puVar10 + 0x16d5c) = puVar7;
    piVar6 = *(int **)(puVar10 + 0x16e64);
    *piVar6 = (int)puVar7;
    return piVar6;
  }
  iVar3 = 1;
  piVar6 = (int *)(*(int *)(puVar10 + 0x16d44) + 0x7610);
  (**(code **)(puVar10 + 0x16ecc))(piVar6,1,0x37,**(undefined4 **)(puVar10 + 0x16f00));
  pcVar11 = *(code **)(puVar10 + 0x16e2c);
  (*pcVar11)();
  *piVar6 = 0;
  piVar6[1] = 0;
  piVar6[2] = 0;
  piVar6[3] = 0;
  piVar6[4] = 0;
  piVar6[5] = 0;
  piVar6[6] = 0;
  piVar6[7] = 0;
  piVar6[8] = 0;
  piVar6[9] = 0;
  piVar6[10] = 0;
  piVar6[0xb] = 0;
  if (iVar3 == 10) {
    pcVar11 = *(code **)(pcVar11 + 0x16cfc);
    (*pcVar11)();
    piVar2 = (int *)(**(code **)(pcVar11 + 0x16d48))(0,piVar6,5);
    if (piVar6 == piVar2) {
      pbVar5 = (byte *)locale_charset();
      if ((*pbVar5 & 0xdf) == 0x55) {
        if (((((pbVar5[1] & 0xdf) == 0x54) && ((pbVar5[2] & 0xdf) == 0x46)) && (pbVar5[3] == 0x2d))
           && ((pbVar5[4] == 0x38 && (pbVar5[5] == 0)))) {
          if (*(char *)piVar2 != '`') {
            return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7658);
          }
          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7664);
        }
      }
      else if ((((((*pbVar5 & 0xdf) == 0x47) && ((pbVar5[1] & 0xdf) == 0x42)) &&
                ((pbVar5[2] == 0x31 && ((pbVar5[3] == 0x38 && (pbVar5[4] == 0x30)))))) &&
               (pbVar5[5] == 0x33)) && ((pbVar5[6] == 0x30 && (pbVar5[7] == 0)))) {
        if (*(char *)piVar2 != '`') {
          return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x765c);
        }
        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7660);
      }
      if (iVar3 != 9) {
        return (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7668);
      }
      piVar2 = (int *)(*(int *)(pcVar11 + 0x16bac) + 0x7654);
    }
    return piVar2;
  }
  *piVar6 = iVar3;
  return piVar6;
}

